Szkriptek: Python, Perl, Bash, ...

Threadek és shell futtatás

Adott egy Solaris 10, futna rajta egy többszálú perl script. A feladatnak része hogy a szálaknak más külső programokat kell futtatniuk.
Egy ideig fut is gond nélkül aztán segmentation fault.
Rá kellett jöjjek, hogy az open3, system függvények forkolnak, az meg nem thread safe.

Röviden a kérdés: perl alatt lehetséges-e bármilyen módon többszálú programból külső programot hívni ... Nem kell visszatérési érték, nem kell in,out,err. csak az hogy blokkoljon (a külső progi lefutása után térjen vissza).

Elméletileg (pl c-ben ez lehetséges -> a popen threadsafe).

Amivel már próbálkoztam:
- popen external modulban
- sima open pipeolva
- open, open3 rész lock-olása (egyszerre csak 1 szál hajthatja végre)

és még sok kétségbeesett marhaság...

Tud valaki megoldást ?

Regexp probléma

Sziasztok!

Egy BBcode szerű dolgot kellene leprogramozzak PHP-ban és van egy regexp, amit képtelen vagyok megírni. :o(
Van ez a "formázott" szöveg:


[bold][italic]aaa[/italic][/bold]
[italic]bbb[/italic]
[bold]ccc[/bold]

A bold-ra írt regexp-em:

/\[(bold)\]([^\[]*(?!\/\$1\]))\[\/bold\]/s

Ez majdnem jó, csak az 'aaa' sort nem vastagítja ki, mert egymásba vannak ágyazva a kódok, de ha ezt használom:

/\[(bold)\](.*(?!\/\$1\]))\[\/bold\]/s

Akkor az 'aaa' sor nyitó tag-jához a 'ccc' sor záró-tagját veszi figyelembe.
Segítetek légyszi, mert agyvérzést kapok!:o)

Köszi előre is!

Általános iskola 6. osztály - Megoldva !

3. Az alábbi jelsorozat egy titkosírással írt mondat. Fejtsd meg a titkosítás módját! A visszafejtett mondatot írd le helyesen. (6p)
ëhÄĹÜŤťŹśhôŁśëhżş║╗şÂ┴şÂh▓ŕ┤h╗┬ş║ş╝Â╩│h╗┬ş║şŞş┤Â▒u

az istennek nem tudok rájönni a megoldásra (valami ötlet ?)
Nem a megoldás érdekel, csak hogy merre induljak...

load avg a promptban, perlben

Elokerestem a Linux bevetes kozben cimu konyvet (anno megvettem, de sose volt idom, max. belenezni) es rabukkantam egy csodas kis proggira (#59), Hogyan jelenitsuk meg a Load Average-t a parancsbekero sorban. Legjobbkor, az egyik szerveren teljesen kulonbozo idopontokban fut el a LA, de hogy mysql vagy apache a gond, passz. Az azert jo lenne, ha top futtatasa nelkul, a promptban latnam az LA-t. A proggi:

#! /usr/bin/perl -w
use strict;
$|++;
my $host=`/bin/hostname`;
chomp $host;
while(1) {
open(LOAD, "/proc/loadavg") || die "Nem tudom megnyitni a /proc/loadavg: $!\n";
my @load=split(/ /,);
close(LOAD);
print "\ 033]0;";
print "$host: $load[0] $load[1] $load[2] at ", scalar (localtime);
print "\ 007";
sleep 2
}

A 3. sorban nem vagyok biztos, nekem pipe-nak tunt, de lehet, hogy hulyeseget irtam, nem ismerem perlt. A harom print sor kozul az elso es a harmadik csinalna (gondolom), hogy mindig "felulirja" az elozo kiirast. Sajnos, nem ezt teszi. Szepen sorban kiir mindent egymas utan. A kimenet ilyen lesz:
033]0;simplecdd: 0.00 0.00 0.00 at Fri Feb 8 10:26:52 2008 007 033]0;simplecdd: 0.00
0.00 0.00 at Fri Feb 8 10:26:54 2008 007 033]0;simplecdd: 0.00 0.00 0.00 at Fri Feb 8
10:26:56 2008 007 033]0;simplecdd: 0.00 0.00 0.00 at Fri Feb 8 10:26:58 2008 007
(Sortores nelkul, persze)
Masik gondom ezutan, hogy nem tudom hatterben futtatni, szoval a
./proggi &
nem mukszik, semmit nem ir, ha fg-vel elohozom, akkor fut. De akkor ugye ugyanott vagyok, mintha a top futna a konzolon...

xmms szeru viselkedes perllel

Hali!

Tudom, hogy hulye a temacim de nem tudtam jobbat kitalalani.

Szoval azt szeretnem elerni, hogy tudjak a perl scriptnek uzenni valahogy ugy ahogy az xmms is teszi. Teszem azt xmms -p elkezdi lejatszani az adott szamot.

Eddig olyasmire jutottam, hogy hasznalom a %SIG hasht es majd esetleg kill-el kuldok signalt de nem hiszem, hogy ez lenne a legjobb megoldas mivel nem hinnem, hogy iylesmire talaltak ki a signal-ozast plane hogy esetleg belenyulhatok valami olyasmibe amit esetleg nem kellene masra hasznalni.

Van valami otletetek?

Új szkript nyelv illetve interpreter típusú nyelv írása

Igazából nem vagyok biztos benne, jó alfórumba raktam-e, ugyanis az új szkriptnyelv C/C++ -ban lenne megírva.

Tehát: a téma rém egyszerű. Ne kezdjen senki arra biztatni hogy minek kellene megírni egy szkriptnyelvet, amikor van sok. Hogy minek? Pld hobbiból.

Egyelőre momentán különben csak annyi érdekelne, hogy van-e valakinek tudomása olyan, Interneten elérhető MAGYAR NYELVŰ szakirodalomról, ami olyasmit taglal, hogy miként írjunk meg egy alapvetően interpreter típusú programnyelvet. Hozzátenném, e téren vannak már bizonyos tapasztalataim, meg ötleteim is, de pusztán szórakozásból szívesen olvasnék ilyesmiről. De csak magyarul. Angolul nem tudok úgy, hogy azon a nyelven olvasva az nekem szórakozás legyen.

Lényegében a legfontosabb rész ezen belül is az lenne, hogy mások miként oldották meg a képletkiértékelő rutint (azt sejtem ám, hogy rekurzív függvénnyel), illetve miféle módszereket alkalmaztak az ugróutasításoknál, hogy az gyors legyen.

Ismétlem, mindezt mind meg tudom oldani magam is ha nagyon akarom, csak érdekelnének mások tapasztalatai is, mert ha megoldok is valamit, nem biztos hogy az optimális lesz.

Tehát, csak néhány linket kérnék, aki tud ilyenről.

Bashből mouse

Sziasztok!

Nincs más input eszközöm, az egér úgyis szabad, így az egér gombjait kapcsolom relével. A gép vékony kliens, az oprendszer: Damn Small Linux, az egér USB-s, biztonság kedvéért az optikai érzékelőt leragasztottam, X nem fut.

Hogyan oldjam meg Bash-ből az egér gombjainak lekérdezését? Fontos lenne, hogy megkapjak minden eseményt (lenyomást és felengedést), vagy le tudjam kérdezni az állapotot.

Jelenleg az eseményekről kapok üzenetet:
cat /dev/input/mice | sajat_script.sh

És a scriptemben hexdump-pal olvastatok be 1 byte-ot (-n opció) egy ciklusban: a hexdump-nál megakad, ha jön input, akkor továbblép, feldolgozás, stb. Általában tökéletesen működik. Baj az, hogy néha megbolondul, és végtelen ciklusba esik (a hexdump nem olvas ki semmit, de nem is vár). Foylamatosan dolgozik a scripttel, 100% proci használat, és onnantól kezdve az eseményeket sem kapom meg. Mi lehet a hiba? Más megoldás?

Ha nem pipe-pal csinálom, akkor meg lehet oldani, hogy minden byte-ot megkapjak? Azokat is, amelyek akkor jönnek, amikor az előző bemenet még feldolgozás alatt áll.

A read és társai nem jöhetnek szóba. Szükségem lenne a 10-es kódra (jobb egérgomb lenyomásakor generálódik), ami egyébként valami kocsi vissza jel. Ezt bash-ben ha elmentem egy változóba, akkor az a változó utána üres marad.

Ha van rá jobb módszer, hogy az egér állapotát lekérdezzük, akkor is érdekelne, hogy bash-ben ilyet hogyan kell megoldani.

Köszi.
Petya

regexp segítség, sörért :P

Sziasztok.

Php-ban kéne egy problémát megoldanom, de a regexpet nagyon nem vágom, és nincs időm megtanulni...

Egy string értékét szeretném [a-z0-9] formába hozni (kis angol betűk és számok).
Ehhez kiszedném belőle azokat a karaktereket, amik nem ilyenek. (valami negáció kéne, de ilyet nem találtam)

ilyesmire gondoltam:
$string=preg_replace('', '', $string);

A jó megoldás beküldője egy sörre a vendégem valahol a belvárosban :)