Portál AbcLinuxu, 22. prosince 2025 17:46
open F, '>/tmp/vysledek.txt'; print F "Hello world!\n"; close F;
#!/usr/bin/perl
$par="20";
for ($i=1;$i<255;$i++) {
if (qx[program -parametry $par.$i ] ) {
}
}
a jak to tam nejak sikovne zakomponovat (to je to oc tu bezi)
open F, '>/home/user/Desktop/vysledek.txt';
print F "";
close F;
protoze program vypisuje stale jen do shellu :(
diky
if ($result = qx[program -parametry $par.$i ] ) {
print FILE $result;
}
Jestli program vypisuje něco na STDERR, tak to musíte/chcete přeměrovat...
open F, ">vysledek.txt"; select F;a pak uplne na konci napisete
close F;Nic vic menit nemusite (pokud program nevypisuje na STDERR, jak tady bylo spravne poznamenano).
#!/usr/bin/perl
open F, "> vysledek.txt";
select F;
$inet="192.168.0";
for ($i=1;$i<68;$i++) {
if (qx[ping -c1 $inet.$i] ) {
close F;
}
}
diky
#!/usr/bin/perl
open F, ">vystup.txt";
select F;
$inet="192.168.0";
foreach $host ( 1 .. 67 ) {
print qx[ping -c1 $inet.$host]
}
close F;
Pokud vas ale zajima jenom vysledek, t.j. jestli stroj odpovida nebo ne, pak muzete upravit smycku takto:
foreach $host ( 1 .. 67 ) {
qx[ping -c $inet.$host];
if ( $? ) {
print "$inet.$host is dead\n"
} else {
print "$inet.$host is alive\n"
}
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.