#!/usr/bin/perl -l my $file = "file.txt"; print "before"; { print STDERR "fileno before local: ", fileno(STDOUT); open (my $old_stdout, '>&', *STDOUT) or die; close (STDOUT); open (STDOUT, '>', $file) or die; print STDERR "fileno after open: ", fileno(STDOUT); system("ls"); close (STDOUT); open (STDOUT, '>&', $old_stdout) or die; } print "after";