Portál AbcLinuxu, 13. května 2025 20:05
open(A,"|/bin/ls -R |/usr/bin/wc -l"); $pocet = <A>; close(A); print $pocet;
#!/usr/local/bin/perl -w open(A,"|/bin/ls -R |/usr/bin/wc -l"); $pocet = A; close(A); print $pocet;(zmente si cestu k perl binarce, pokud to mate jinde). Aspon je videt, jakej je ten perl totalne zmatenej. Mam pocit, ze starsi interprety vyzadovaly tam ty zavorky, zatimco ty novejsi ne.
print $pocet;
na print "Vypis: $pocet";
a pusti si to. Vypise ti to Vypis: a nad tym sice bude vypisany pocet fajlov ale tie nie su vypisane cez perl(print) ale vypisuje ich ten vyraz uvedeny v backticks. $pocet je neinicializovany.
(zmente si cestu k perl binarce, pokud to mate jinde). Aspon je videt, jakej je ten perl totalne zmatenej.RTFM
perlrun
Mam pocit, ze starsi interprety vyzadovaly tam ty zavorky, zatimco ty novejsi ne.ROFL. Ty jseš mimoň.
$ perl <<EOF open(A,"|/bin/ls -R |/usr/bin/wc -l"); $pocet = <A>; close(A); print "Je tam toho $pocet"; EOF 5740 Je tam toho $ perl <<EOF open(A,"/bin/ls -R |/usr/bin/wc -l|"); $pocet = <A>; close(A); print "Je tam toho $pocet"; EOF Je tam toho 5740 $
open(A,"|/bin/ls -R |/usr/bin/wc -l");
open(A,"/bin/ls -R |/usr/bin/wc -l|");
prve je zapisovanie, druhe citanie
petr@cz2cbjmc:~/web $ perl -we 'my $data=`/bin/ls -R |/usr/bin/wc -l`; print "Vystup\n${data}Konec vystupu\n";' Vystup 1 Konec vystupu
perl -we 'my $adresar=q(work); my $data=qx(/bin/ls -R $adresar|/usr/bin/wc -l); print qq(Vystup\n${data}Konec vystupu\n);'
mi stale nechodirovná se žádná informace. Obzvláště pokud mě to chodí a bez problémů. Co znamená nechodí? Nemá to nožičky, tak to ani chodit nemůže. Co se týče konstrukcí
q()
, qq()
, qx()
, qw()
a další, RTFM perlop
.
... $adresar =~ s/"/\\"/g; $soubor=`/bin/ls -R "$adresar" | /usr/bin/wc -l`;
perl -MFile::Find -e 'find(sub{$a++}, q(work)); print $a,$/'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.