Du könntest den Typeglob
*OUT übergeben (direkt oder per Referenz), aber seit Perl 5.6 ist es möglich und auch empfohlen, direkt mit Filehandle-Referenzen zu arbeiten:
open (my $out, '>', $write_file) or die "Kann $write_file nicht erzeugen: $!";
foreach (@ARGV) {
@array_result = work_with_file ($_, $out);
}
close $out;
Alternativ kannst du eines der Standard-Module FileHandle oder IO::File benutzen, um mit Filehandle-Objekten zu arbeiten.
Übrigens: Wenn man etwas mit allen Dateien machen möchte, die auf der Kommandozeile übergeben wurden, dann kann man sich oft das iterieren über @ARGV sparen und stattdessen einfach den magischen Diamantoperator "<>" nutzen; der liest alle Zeilen aus allen angegebenen Dateien nacheinander ein.