У меня есть этот кусок кода, который читает выходные данные трассировки для целей мониторинга.
Этот фрагмент кода, приведенный ниже, работает нормально.
for ($i = 0; $i < $sizeloc; $i++) {
for ($j = 0; $j < 1; $j++) {
if ($j==0) {
system("tracert " . $locations[$i][$j] . " > d:\\netmon\\"
. $locations[$i] [$j+1] );
}
}
}
Как только я вызываю этот sub read_outputfile ($ location [$ i] [$ j + 1]);внутри цикла возникает проблема.Он повторяет только один объект, и моя программа заканчивается.Поэтому в первый раз, когда он вызывает read_outputfile, он запускает код в подпрограмме.Только он не возвращается в цикл.Это только заканчивается.
for ($i = 0; $i < $sizeloc; $i++) {
for ($j = 0; $j < 1; $j++) {
if ($j==0) {
system("tracert " . $locations[$i][$j] . " > d:\\netmon\\" .
$locations[$i][$j+1] );
read_outputfile($locations[$i][$j+1]);
}
}
}
sub read_outputfile{
my( $location ) = @_;
open ($location, "$location");
while ($record = <$location>) {
$i++;
if ($i == 8) {
$out = substr($record , 32);
if($out != "88.15.160.255" ) {
mail($location);
}
}
}
close($location);
}
Любой ввод?