【问题标题】:deleting files with perl用perl删除文件
【发布时间】:2012-02-13 18:04:10
【问题描述】:

我正在尝试编写一个 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);
}

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

【问题讨论】:

  • 第一个提示是检查错误:unlink($line) or warn "$0: could not unlink $line: $!\n"

标签: perl delete-file


【解决方案1】:

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

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

【讨论】:

  • 您也可以使用chomp @data; unlink @data;,因为这两个命令都将列表作为参数。 IE。不需要循环。
  • @ikegami 检查错误会像以前一样容易,但是如果出现错误,您将无法判断哪个文件无法删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 2014-03-28
  • 2011-07-07
  • 2014-04-22
相关资源
最近更新 更多