2013-03-18 43 views
0

我想/tmp文件夾 「1.1.1.1」 的IP地址刪除文件:Perl的 「斷開連接」 功能usge與 「水珠」

# ls -1 /tmp 
1.1.1.1_Reboot.xml 
1.1.1.1_Roll.xml 
1.1.1.1_Setup.xml 
1.1.1.2_Reboot.xml 
1.1.1.2_Roll.xml 
1.1.1.2_Setup.xml 

我指:unlinkglob

這裏我的代碼:

#!/usr/bin/perl -w 
use strict; 

my $DIR  = "/tmp"; 
my $IP  = '1.1.1.1'; 

unlink glob $DIR."/".$IP."*"; 

但是,它並沒有刪除文件。我懷疑是glob函數,我想我沒有以正確的方式使用它。

你能幫忙嗎? 謝謝。

UPDATE:

,如果我的IP地址本身,則刪除文件替換$IP

unlink glob $DIR."/"."1.1.1.1"."*"; 

所以,它看起來像unlink說法是不能夠評估變量$IP的價值。我不知道爲什麼這樣做。我需要使它與$IP一起工作,而不是其明確的價值。

回答

0

它可能被保存到路徑中。打印錯誤以獲取更多信息。試試這個:

#!/usr/bin/perl -w 
use strict; 

my $DIR  = "/tmp"; 
my $IP  = '1.1.1.1'; 

chdir $DIR; 
my @goners = glob $IP . "*"; 

foreach my $file (@goners) { 
    print "file: $file\n"; 
    next unless $file =~ m!^1\.1\.1\.\d_!; 
    print "file to delete: $file\n"; 
    unlink $file or warn "Could not unlink $file: $!"; 
} 
+0

試過這個。它也沒有拋出任何錯誤。這些文件仍然存在.. – slayedbylucifer 2013-03-18 08:18:23

+0

刪除1.1.1.12 – ikegami 2013-03-18 08:18:48

+0

我添加了一組可幫助您的打印句子。我檢查@ikegami指出的問題 – 2013-03-18 08:37:16