LINUX.ORG.RU

Скрипт на perl и system()

 , ,


0

1
#!/usr/bin/perl

open (DATA, "/path/mac-ip.txt") or die $!;

$file = "/path/mac-ip-tmp.txt";

my @listIM; # List IP and MAC

while (<DATA>) {
        chomp;
        next if /^\s*#/; # ignore comments
        my @f = split /\s/, $_;
        my %hash;
        @hash{'IP','MAC'} = @f;
        push @listIM, \%hash;

}

foreach my $seq (@listIM) {
   if (system("grep -w $seq->{IP} $file")){print " OK ";}     
}


Необходимо проверить соответствия в двух файлах. Не могу придумать как заставить проверить условие if (system("grep -w $seq->{IP} $file"))

А не проще ли прочитать два файла, и сравнить их средствами perl, чем дергать grep на каждый чих ?

joy4eg ★★★★★
()

А что именно ты ожидаешь от system? Что он должен вернуть? Строки? Тогда прочитай perldoc:

This is not what you want to use to capture the output from a command; for that you should use merely backticks or qx//, as described in `STRING` in perlop.

outtaspace ★★★
()
Ответ на: комментарий от joy4eg

Согласен, но я с самого начала попер в этом направлении. Хотел доделать, в принципе тупанул как обычно все работает.

tooncheg
() автор топика
Ответ на: комментарий от tooncheg

но я с самого начала попер в этом направлении

вот тебе направление perldoc -f exists

ukr_unix_user ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.