Não é possível ler a saída de aberto em Perl

0

Eu tenho este pequeno código em uma instrução while while(<PS>) e ele não executará e lerá a saída do código open(PS,"blabla") .

Como resolvo isso?

#!/usr/bin/env perl
#

my $IPendnum = 1;
my $IPrange = 0;
my $START = 1;

while ($START == 1) {
        print "Pinging IP : 192.168." . $IPrange . "." . $IPendnum . "\n";
        open (PS, "fping 192.168." . $IPrange . "." . $IPendnum);
        while(<PS>) {
                chop ($_);
                if (/is alive/) {
                        print "The following IP : 192.168." . $IPrange . "." . $IPendnum . " is online! \n";
                } else {
                        print "The following IP : 192.168." . $IPrange . "." . $IPendnum . " is currently offline! \n";
                }
        }

        if ($IPendnum >= 255) {
                $IPrange += 1;
                $IPendnum = 1;
        } else {
                $IPendnum += 1;
        }
        print "Moving to the next IP address \n";
        sleep(1);
}
    
por user291903 11.09.2015 / 19:34

1 resposta

0

Você está tentando abrir um arquivo. Você executa um comando assim:

open (PS, "-|", "fping 192.168.$IPrange.$IPendnum");
    
por 11.09.2015 / 19:54

Tags