Ошибка при попытке вызова 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"" 

  • Perl не устанавливает языковой стандарт на AIX 7.1
  • Как преодолеть разницу TZ на разных серверах?
  • Как ограничить MAX MIN длиной строки?
  • Показывать только строки, которые находятся во всех текстовых файлах, по крайней мере, один раз
  • Скрипт для удаления определенных элементов span из файла HTML
  • Bash не будет выполнять системную команду в скрипте Perl
  • Как grep для текста в файле и отображать абзац с текстом?
  • Замена строк в файлах с содержимым файла
  • 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: $?"; 
    Linux и Unix - лучшая ОС в мире.