Sto cercando di scrivere uno script perl che legge i nomi dei file in un file test.txt in un array, e quindi elimina i file in base ai nomi dei file nell'array. Ecco cosa ho ottenuto finora ...
#!/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 e remove_files.pl si trovano nella stessa directory dei file da rimuovere. Non riesco a capire perché lo script non toglie i file. Mi manca un modulo?
risposte:
11 per risposta № 1Linee lette da un file con l'operatore di readline (<...>
) includerà il carattere di nuova riga. Dovrai rimuoverlo, altrimenti tenterai di eliminare un file chiamato "myfile.txtn"
invece di "myfile.txt"
. Usa Perl "s chomp
funzione per tagliare il tuo input:
foreach $line (@data){
chomp($line);
unlink($line);
}