$ cat xx.pl #!/usr/local/bin/perl -w use strict; my $file = shift or die "File name required\n"; open STDIN, "<$file" or die "Can't open STDIN from $file - $!\n"; my @data = ; close STDIN or die "Error closing stdin - $!\n"; open STDOUT, "> $file" or die "Can't open STDOUT to $file - $!\n"; foreach (@data) { print lc($_); } close STDOUT or die "Error closing stdout - $!\n"; __DATA__ $ xx.pl abc Filehandle STDIN reopened as STDOUT only for output at ~/mytest/tbin/xx.pl line 16.