use IO::File; my $handle = $FILE ? do { IO::File->new($FILE) or fatal_error(".."); } : *STDIN; # later you can use <$handle>