my $file = $ARGV[0]; if (defined $file) { open(IN, "< $file") or die("Unable to open supplied argument: $!\n"); } else { *IN = *STDIN; } while () { print($_); # do stuff }