用perl删除文件

Cha*_*had 2 perl delete-file

我正在尝试编写一个perl脚本,将test.txt文件中的文件名读入数组,然后根据数组中的文件名删除文件.这是我到目前为止所得到的......

#!/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);
}
Run Code Online (Sandbox Code Playgroud)

test.txt和remove_files.pl与要删除的文件位于同一目录中.我无法弄清楚为什么脚本不会删除文件.我错过了一个模块吗?

mob*_*mob 11

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

foreach $line (@data){
    chomp($line);
    unlink($line);
}
Run Code Online (Sandbox Code Playgroud)

  • 你也可以做`chomp @data; unlink @data;`,因为两个命令都将列表作为参数.也就是说,不需要循环. (6认同)
  • @ikegami这将像以前一样容易地检查错误,但是如果出现错误,您将无法判断无法删除哪个文件。 (2认同)