my $openfile = '';
foreach my $file (@file) {
my $filename = $file->{filename};
my $content = $file->{content};
if ($filename ne $openfile) {
$openfile = $filename;
open(FILE, "> $filename")
or die "Can't open $filename $!";
}
print FILE $content;
}
close(FILE) if $openfile;
####
for my $file (sort {$a->{filename} cmp $b->{filename}} @files) {
...
}
####
foreach my $file (@files) {
my $filename ...
my $content ...
if (!$fh{filename}) {
open $fh{filename}, "> $filename"
or die ...
}
print {$fh{filename}} $content;
}
foreach my $fh (keys %fh) {
close($fh{$fh});
}