$ perl -MFile::Basename -wE 'say basename("foo.psd",".psd")' foo #### $ perl -MFile::Basename -wE 'say basename(undef,".psd")' Use of uninitialized value $_[0] in substitution (s///) at /Users/1nickt/perl5/perlbrew/perls/perl-5.30.0/lib/5.30.0/File/Basename.pm line 341. fileparse(): need a valid pathname at -e line 1.