У меня есть этот небольшой фрагмент кода в операторе while(<PS>) и он не будет выполняться и считывать выходные данные open(PS,"blabla") кода.

Как мне решить это?

#!/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);
}

1 ответ1

1

Вы пытаетесь открыть файл. Вы запускаете команду как это:

open (PS, "-|", "fping 192.168.$IPrange.$IPendnum");

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .