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


in reply to Re: using basename on a list of filesnames
in thread using basename on a list of filesnames

that didn't seem to work
Use of uninitialized value $_[0] in substitution (s///) at /System/Lib +rary/Perl/5.18/File/Basename.pm line 341, <GEN0> line 10. fileparse(): need a valid pathname
i also tried.
my $basename = basename (@TIFFfolder_list, ".psd"); print "$basename\n";
that only gave one filename output from the array.

Replies are listed 'Best First'.
Re^3: using basename on a list of filesnames
by 1nickt (Canon) on Nov 13, 2019 at 03:51 UTC

    Did you add a debug print statement inside the loop to see what you are passing to basename() in $file? It really works:

    $ perl -MFile::Basename -wE 'say basename("foo.psd",".psd")' foo
    ... but passing an undefined value does not:
    $ perl -MFile::Basename -wE 'say basename(undef,".psd")' Use of uninitialized value $_[0] in substitution (s///) at /Users/1nic +kt/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.


    The way forward always starts with a minimal test.