http://www.perlmonks.org?node_id=368068


in reply to Accepting either a filename or a handle

What about named parameters?

sub doit { my %options = @_; if ($options{filename} ) { #use a filename } elsif ( $options{filehandle} ) { # use a filehandle } else { die "won't work"; } } doit( filename => 'somefile'); doit( filehandle => $fh );