Ошибка при попытке вызова find из perl

use warnings; use File::Find; my $srceDir = "//mnt/Share_Drive/Verizon PM&T/Capture Files/"; opendir(DIR, $srceDir) or die "Can't open $srceDir: $!"; my @files = (find -type f -newermt "12 Feb 2013", $srceDir); closedir(DIR); 

Я могу запустить команду find с параметром -newermt в Linux очень хорошо, но когда я положил ее в perl-скрипт, я получил ошибки ниже, не могли бы вы помочь? благодаря

 String found where operator expected at ./queryAlm.pl line 11, near "newermt "12 Feb 2013"" (Do you need to predeclare newermt?) syntax error at ./queryAlm.pl line 11, near "newermt "12 Feb 2013"" 

One Solution collect form web for “Ошибка при попытке вызова find из perl”

В модуле File::Find perl почти нет действий с командой find . См. perldoc File::Find как его использовать.

Как указывает Йорданм, вы можете использовать find2perl чтобы помочь вам написать этот код perl , но обратите внимание, что find2perl распознает только стандартный синтаксис find , поэтому обычно не GNU-расширения, такие как -newermt . Вам придется писать код perl самостоятельно (вызов stat() для файла и сравнить mtime с POSIX::mktime(0,0,0,12,2,113) ).

Чтобы запустить команду find , вам не нужен модуль File::Find , вы можете просто выполнить:

 my $srceDir = "//mnt/Share_Drive/Verizon PM&T/Capture Files/"; my @find_cmd = ("find", $srceDir, "-type", "f", "-newermt", "12 Feb 2013", "-print0"); open FIND, "-|", @find_cmd; $/ = "\0"; my @files = <FIND>; my $ret = close FIND or warn $! ? "Error closing find pipe: $!" : "find exited with non-zero exit status: $?"; 
  • найти общие строки в каждом столбце в одном файле
  • заменяя точку символом с помощью sed или perl
  • Linux эквивалентен удалению PowerShell «один ко многим»
  • Является ли удаление Perl Рекомендацией для упрочения системы?
  • awk + как печатать каждую секцию строки (IP) после первого имени хоста
  • awk + как захватить адрес электронной почты между символами
  • Печать нескольких строк после n-го появления в bash
  • Установка модулей perl
  • Как я могу удалить все между двумя маркерами в файле?
  • Как упомянуть rpm для поиска зависимых модулей perl в системе
  • Regex этот формат вопроса в LaTeX
  • Linux и Unix - лучшая ОС в мире.