我正在尝试编写一个将test.txt文件中的文件名读取到数组中的perl脚本,然后根据数组中的文件名删除这些文件。这是我到目前为止所得到的......
#!/usr/bin/perl
use strict;
use warnings;
open(FILE, "test.txt") or die("Unable to open file.");
my @data = <FILE>;
close(FILE);
foreach my $line (@data){
unlink($line);
}
test.txt和remove_files.pl与要删除的文件位于同一目录中。我无法弄清楚为什么脚本不会删除文件。我错过了一个模块吗?
答案 0 :(得分:11)
使用readline运算符(<...>
)从文件读取的行将包含换行符。您需要将其删除,否则您将尝试删除名为"myfile.txt\n"
的文件而不是"myfile.txt"
。使用Perl的chomp
函数来修剪输入:
foreach $line (@data){
chomp($line);
unlink($line);
}