У меня проблема с циклическим просмотром имен файлов, элементы входного массива удаляются.
КОД:
use Data::Dumper;
use warnings;
use strict;
my @files = ("file1", "file2", "file3");
print Dumper(\@files);
for (@files) {
my $filename = $_ . '.txt';
open(my $fh, '<:encoding(UTF-8)', $filename)
or die "Could not open file '$filename' $!";
while(<$fh>) {
print "$filename read line \n";
}
}
print Dumper(\@files);
ВЫВОД:
$VAR1 = [
'file1',
'file2',
'file3'
];
file1.txt read line
file2.txt read line
file3.txt read line
$VAR1 = [
undef,
undef,
undef
];
СОДЕРЖАНИЕ ФАЙЛА:
cat file1.txt
asdfsdfs
cat file2.txt
iasdfasdsf
cat file3.txt
sadflkjasdlfj
Почему содержимое массива удаляется?
(У меня есть 2 разных решения этой проблемы, но я хотел бы понять, в чем проблема с этим кодом.)