Я пишу скрипт, который берет список файлов из каталога, открывает каждый и затем ищет строки, содержащие имя файла с расширением .zip. Затем я хочу удалить только имя файла из строки. Вот мой код:
foreach (@fnames) {
chomp ($_);
open FILE, '<', "$_";
@archives = grep { /.+?\.zip/ } <FILE>;
foreach (@archives) {
if ($_ =~ /("|>)(.+?)("|<)/) { push @files, $2; }
}
}
Файлы, из которых я извлекаю данные, будут содержать имена файлов .zip между двойными кавычками или угловыми скобками. Этот код ничего не возвращает, но я знаю, что там есть имена файлов. Если я делаю grep в терминале, я вижу их все, но grep в Perl мне ничего не дает. Есть идеи?