TLP уже рассказал вам несколько советов, как решить проблему.Но всегда есть более чем один способ сделать это.Вместо File :: Find и Tie :: File я бы использовал более «современные» модули.В этом полном примере я использую Path :: Class :: Rule с итеративным интерфейсом вместо рекурсивного интерфейса, который мне нравится больше.
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use open ':encoding(UTF-8)';
use open ':std';
use Path::Class;
use Path::Class::Rule;
my $rule = Path::Class::Rule->new->file;
my $iter = $rule->iter(dir('test'));
while ( my $file = $iter->() ) {
print $file->stringify, "\n";
add_line_to_file($file, "Sid was here.\n");
}
# 1: Path::Class::File Object
# 2: The Line
sub add_line_to_file {
my ( $file, $line ) = @_;
# Open File - return IO::File object
my $fh = $file->open('>>') or die "Cannot open $file: $!\n";
# Seek to end
$fh->seek(0, 2);
# Add line
$fh->print($line);
$fh->close;
return;
}