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


in reply to installing modules

using psi::esp, I bet you're trying to get an id3 tag on a directory, maybe . or ..
try changing
my ($title, $artist, $mp3_file); foreach my $file (@file_names) { $mp3_file = new MP3::ID3v1Tag("$file"); $title = $mp3_file->get_title(); $artist = $mp3_file ->get_artist(); print "$title - artist\n"; }
to
my ($title, $artist, $mp3_file); foreach my $file (@file_names) { print "now working with file '$file'\n"; # remove mp3_file from the my declaration outside the loop my $mp3_file = new MP3::ID3v1Tag("$file"); die "Can't create id tag : $!" unless $mp3_file; $title = $mp3_file->get_title(); $artist = $mp3_file ->get_artist(); print "$title - artist\n"; }
to get a more detailed error message. Also use -d to determine if $file is really a directory and take appropriate action.