#! perl -w use strict; my $fname = shift; my $fh; if( $fname eq '-test' ) { $fh = \*DATA; } elsif( $fname ) { open $fh, '<', $fname or die $!; } else { $fh = \*STDIN; } while( <$fh> ) { print; } __DATA__ my test data