Bei STDOUT umleiten:
open(STDOUT, ">stdout.txt") || die "Kann stdout.txt nicht öffnen!";
hier finde ich die folgende schreibweise schoener:
my $file = "stdout.txt";
open (STDOUT, "> $file") or die "Kann '$file' nicht öffnen!";
oder sogar (bei neueren Perl-Versionen):
my $file = "stdout.txt";
open (STDOUT, ">", $file) or die "Kann '$file' nicht öffnen!";
1. or finde ich besser lesbar als || (ausser man ist C-Programmierer), und es macht in diesem fall auch keine Probleme, wenn man aus versehen die Klammern um die open-parameter vergisst
2. wenn man einen dateinamen oefter benuetzt, dann immer in eine variable packen; sonst aendert man mal den dateinamen im open und vergisst, ihn bei der fehlermeldung auch zu aendern, und dann ist die fehlermeldung falsch, wenn was schiefgeht, und man sucht vielleicht an der falschen stelle.
3. am flexibelsten finde ich das konstrukt:
unless (open (STDOUT, ">", $file)) {
die "Kann '$file' nicht öffnen!";
}
weil da auch ein anfaenger einfach weitere aktionen reinschreiben kann (z.B. Datenbankverbindung trennen, ...); beim or die braeuchte man schon ein do oder so aehnlich.