Olvasd vegig a konyvtarat (opendir/readdir/closedir). Dobd el a "." es a ".." ertekeket. A tobbi mehet egy hash-be (ertek = 0). Olvasd vegig a masik konyvtarat is, ugyanugy dobd el a pontot es a ketpontot. Beolvasas kozben if (defined $Hsh{Beolvasott}), akkor mindkettoben benne van. Ha csak ez kell, akkor mar jo. Ha az is kell melyik van benne csak az egyikben, akkor a talalatoknal allitsd at hozzarendelt erteket $Hsh{Beolvasott}=1 -re. A (! defined $Hsh{Beolvasott}) adja a csak a masodikban levoket. A legvegen vegigmesz a hash ertekeken es ahol 0, az csak az elsoben szerepel.
Hát, nem tudom, de a 'man grep' reg. expr. fejezetét olvasd el
lassan és figyelmesen, mást nem tudok javasolni.
Utána jöhet a húzósabb 'man perlre', amit még figyelmesebben kell olvasni.
'lla
olyan programot akarok irni amiben nincsenek fix
szövegek, hanem azokat egy fileból veszi ki, azt hogy melyik fileból az paraméter és akkor több nyelven tudok kommunikálni a kedves felhasználóval. na ehhez kellett.
szóval ennél elegánsabb megoldást keresek, bár nem szépségverseny :)
sub szoveg_mutat
{
my $par_mit=pop(@_);
for $item (@tomb)
{
if ($item=~m /$par_mit/)
{
my @kell=split(';',$item);
return(substr($kell[1],0,-2));
}
}
print "$par_mit: rossz parameter hivas !\n";
exit;
}
re al, hash-t szertnék létrehozni file alapján pl így:
open (NYELV,$nyelv.".desc") || die ...;
@tomb=;
close (NYELV);
foreach (@tomb) {
chomp;
@sor=split(/;/);
## csak hogy tuti 2évágja-e ?
print "$sor[0];$sor[1]\n";
$valtozo{$sor[0] => $sor[1]};
}
print $valtozo{'nev'};
szóval az index lenne a textfile sorának elsőrésze, ami a ; elött van, míg a hozzátartozó érték a ; utáni string.
csakhogy
Useless use of hash elem in void context at ./test line 32.
van és persze a $valtozo['nev'] sem megyen, de mért nem lehet egyáltalán ijet csinálni ?
mijen jó lenne ha nem kéne számokat megjegyeznek egy tömb értkeinek eléréséhez, de ha nincs más akkor :((
Nekem a mintaillesztéssel és a szabályos kifejezésekkel vannak gondjaim. Nagyon sok leírást átolvastam már, de képtelen vagyok a lényeget elcsípni.
Tud valaki olyan címet mondani, ahol használható leírást találok. Nem a minták, sablonok felsorolását keresem, hanem egy használható leírást.
Köszönöm a megoldásokat, mint kiderűlt, az volt a baj, hogy a CLOSE parancs unlockol valoszinuleg.
tehat csak egyszer kell openolni, de akkor irassra/olvasasra:
open(COUNT,"+<$count_file") || die "Can't Open Count Data File: $!\n";
flock(COUNT,2);
seek(COUNT,0,0);
$count = ;
Sziasztok. Az alábbi modon oldom meg egy allomanyban levo szam noveleset. Ez egy szamlalo lenne, de az a bajom, ha egyszerre sokan nezik (leteszteltem 30 geprol 10-20 bongeszovel) idonkent lenullazodik (illetve masra all at a file-ban levo szam). Olyan, mintha a file-lockolas nem mukodne. Tehat pl. 267 utan 2-re all at, vagy 1958 utan 195-re, vagy 15-re... Szoval a kod:
open(COUNT,"$count_file") || die "Can't Open Count Data File: $!\n";
flock(COUNT,2);
seek(COUNT,0,0);
$count = ;
close(COUNT);
if ($count =~ /\n$/) {
chop($count);
}
$count++;
open(COUNT,">$count_file") || die "Can't Open Count Data File For Writing: $!\n";
seek(COUNT,0,0);
print COUNT "$count";
flock(COUNT,8);
close(COUNT);
Mi az ami nem jo, illetve hogyan lehet megtudni, hogy a szolgaltato tamogatja-e a file-lockolast? (A szolgaltato az SWI, csak ok nem valaszoltak az e-mailomra).
udv mindenkinek
segitsetek nekem:
egy olyan cgit kellirnom amiben tobb frame kezelodik reszletesebben...
az elso -- mainFrame
a masodik menuFrame
a menuFrame-ban levo link a mainFrame-ban letre hoz egy formot.
a form nyomogombja beirja az adatot az adatbazisba es modositja a menuFrame-t...
amit edig sikerult elerni az az hogy a nyomogomb a mainFrame-ban letre hozta a menut
mindket frame ugyanazt a cgit futtatja mas parameterrel..
kerdes hogyan lehet a TARGET-et kieroszakolni a cgibol.( tisztan perlbe szeretnem megoldani)
koszi a segitseget, kozben mar en is ratalaltam a system()-re, de ugy nez ki a szerver nem szereti, mert mig parancssorbol megy a wget vagy lynx -source command, addig uerre cgi-bol azt mondja sh: lynx not found. a szerver az ural2.hszk.bme.hu. ha erre tudtok, varrjatok gombot!
Sziasztok!
Nem bírom átlépni a következő egyszerű problémát, ami a locale-lel
és a regexp-pel kapcsolatos. Íme egy screen-shot:
bl:~/forum#
bl:~/forum# export LC_ALL=hu_HU
bl:~/forum# cat p.pl
#!/usr/bin/perl -n
BEGIN {
use locale;
}
/(\w+) *(\w+)/;
print "$1 $2\n";
bl:~/forum# cat p.txt
Péter János
bl:~/forum# ./p.pl p.txt
ter J
bl:~/forum#
bl:~/forum# perl -v
This is perl, version 5.005_03 built for i386-linux
Szóval, nem sikerült rávennem a perlt, hogy a magyaros magán-
hangzókat is alfanumerikusként értelmezze a \w regexp. A locale-
beállítás körül lehet a gond.
Tudna valaki segíteni? Köszi!
'lla
Linuxos munkaállomásról szeretnék Tru64 unixon futó Oracle-t
megszólítani perl-lel. Már a DBD:Oracle modul telepítésénél megakadtam persze, mert Oracle-lös libeket kér, és az nem intell, hanem alpha procira lett legyártva. Tudtok valami megoldást?
A flock az en ertelmezesem szerint pont ezt csinalja, legalabbis en igy hasznaltam.
Mondjuk
.
.
$filename="/home/httpd/.list/.textfile";
flock ($filename,2);
open (FILE, ">>$filename");
***beirsz egy sort, vagy csinalod a file -la amit akarsz....>***
close (FILE);
flock ($filename,8);
Szoval, lockolja a filet es elkezd beleirni, meg amit akarsz. Akkor hogy ha ezalatt az ido alatt
jon egy masik keres, ugyanerre a scriptre, akkor egeszen addig nem hagyja megnyitni a filet, ameddig nem engedelyezed a ,8 -al a feloldast. Aztan amikor lefut az utolso sor, akkor beengedi a kovetkezo kerest. Asszem ezalatt az ido alatt te waiting for reply -t latsz a bongeszodben, majd egyszer csak beindul.
Ha nem tul nagy a file merete, akkor erdemes egyebkent a ciklusaidat ugy megcsinalni, hogy fogod, lockolod a filet, beleirod egy tombbe, aztan zarod, es close -olod a filet.
$filename="/home/httpd/.list/.textfile";
flock ($filename,2);
open (FILE, ">>$filename");
@tomb=;
close (FILE);
flock ($filename,8);
s igy a leheto legkevesebbet kell varnia a masik usernek.
Ha pedig eleg nagy az adatallomanyod, es a tombbeolvasas is tobb masodpercet vesz igenybe, akkor pedig hasznalj MySql -t, es DBI -t.
Azt hogy tamogatja e az adott rendszer, a www.perl.com, www.perl.org, www.perl.net valamelyikerol egesz biztosan megtudod.
Sziasztok,
Egy olyan embert keresek, aki ScoUnix alá már feltett MySQL-t + PERL-t.
Tanácsot szeretnék kérni egyáltalán az installálás menetéről.
Elég lama vagyok.
Plz help! :)