документация не кажется, чтобы быть точными, но, судя по исходному коду — http://cpansearch.perl.org/src/MNEYLON/File-Grep-0.02/Grep.pm — перечня вы получите обратно из fgrep
содержит один элемент на один файл. Каждый элемент представляет собой хэш-формы
{
filename => $filename,
count => $num_matches_in_that_file,
matches => {
$line_number => $line,
...
}
}
Я думаю, что было бы проще пропустить fgrep
и его сложного возвратного значение, которое имеет намного больше информации, чем вы хотите, в пользу fdo
, которая позволяет просто перебрать все строки файла и делать то, что вы хотите: (. Обратите внимание, что я удалил glob
, кстати Там не много смысла писать glob "file.csv"
, так как только один файл может соответствовать этому globstring.)
fdo { my ($file, $pos, $line) = @_;
print $line if $line =~ m/1\.1\.1/;
} 'file.csv';
или даже просто обойтись без этого модуля и написать:
{
open my $fh, '<', 'file.csv';
while (<$fh>) {
print if m/1\.1\.1/;
}
}
'использования Data :: Dumper; print Dumper \ @matches; 'скажет вам, как выглядят возвращаемые данные: – ysth
' $ VAR1 = [ { 'filename' => 'file.csv', 'count' => 11, 'matches' => { '14' => '1.1.1, некоторые текстовые символы здесь' } } ]; ' – snoop
что-то вроде этого. Я получаю совпадение после добавления использования' Data :: Dumper; '' print Dumper \ @matches; '. – snoop