2016-03-04 44 views
0

如何測試列出的任何文件是否在perl編程的最後12小時內被修改過。打印這些文件的名稱。開放匿名管道Perl編程

這是我的代碼,但它不起作用。任何人都可以教我如何解決它?

use warnings; 
    open(LISTDIR, "find ~ -type f -mtime 0 -ls /Users/Perl/ | ") or die "PIPE failed $!\n"; 
    while($filename = <LISTDIR>){ 
    print $filename; 
    } 
+1

-ls不帶參數。 – laune

+0

「不起作用」是什麼意思? –

+0

我希望在過去的12個小時裏有這些文件,但它是所有這些文件。 – Johnny

回答

0
use warnings; 
open(LISTDIR, "find ~ -type f -mtime 0 -ls | ") or die "PIPE failed $!\n"; 
while($filename = <LISTDIR>){ 
    print $filename; 
} 

你應該看到一個錯誤信息:

find: paths must precede expression: /Users/Perl 

這說明了一切。

+1

不要忘記關閉文件句柄並檢查close的成功。打開管道時,'open'只返回'fork'是否成功,而不管被調用的程序是否成功。 – ThisSuitIsBlackNot

+0

我希望在過去的12個小時裏有這些文件,但它是所有這些文件。 – Johnny