У меня есть CSV-файл, который содержит IP, Alive поля, как показано ниже:
ip, alive
127.0.0.1, Yes
127.0.0.2, No
Я хочу пропинговать каждый IP, и если пинг доступен, тогда мне нужно поставить Да перед этим IP в том же файле CSV.
Я пытаюсь с кодом ниже, но застрял при чтении и записи одного и того же файла CSV.
#!/usr/bin/perl
use strict;
use warnings;
use Net::Ping;
use Data::Dumper;
my $file = 'servers.csv';
my @filedata;
open(my $fh, '<', $file) or die "Can't read file '$file' [$!]\n";
while (my $line = <$fh>) {
chomp $line;
my @fields = split(/,/, $line);
push @filedata, \@fields;
}
print Dumper(@filedata);
my $p = Net::Ping->new();
if ($p->ping('127.0.0.1'))
{
print "\nYes\n";
}
Мой код для проверки и чтения файла работает нормально, но я не очень уверен насчет циклического прохождения данных, прочитанных из файла, а затем проверяю и сохраняю результат обратно в файл CSV.
Любая помощь будет высоко оценена.