我想用" 1.1.1.1"删除文件/tmp
文件夹中的IP地址:
# 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
这是我的代码:
#!/usr/bin/perl -w
use strict;
my $DIR = "/tmp";
my $IP = '1.1.1.1';
unlink glob $DIR."/".$IP."*";
但是,它不是删除文件。我怀疑是glob
函数,我想我没有以正确的方式使用它。
更新
如果我用ip地址本身替换$IP
,那么它就是删除文件。
unlink glob $DIR."/"."1.1.1.1"."*";
因此,看起来unlink
语句无法评估变量$IP
的值。我不知道为什么这样做。我需要使用$IP
而不是它的显式值。
答案 0 :(得分: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: $!";
}