用perl删除文件

时间:2012-02-13 18:04:10

标签: perl delete-file

我正在尝试编写一个将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与要删除的文件位于同一目录中。我无法弄清楚为什么脚本不会删除文件。我错过了一个模块吗?

1 个答案:

答案 0 :(得分:11)

使用readline运算符(<...>)从文件读取的行将包含换行符。您需要将其删除,否则您将尝试删除名为"myfile.txt\n"的文件而不是"myfile.txt"。使用Perl的chomp函数来修剪输入:

foreach $line (@data){
    chomp($line);
    unlink($line);
}