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の11readline演算子を使用してファイルから読み取った行(<...>
)改行文字が含まれます。あなたはそれを削除する必要があります、さもなければあなたはと呼ばれるファイルを削除しようとするでしょう "myfile.txtn"
の代わりに "myfile.txt"
。 Perlを使用 chomp
入力をトリミングする関数:
foreach $line (@data){
chomp($line);
unlink($line);
}