OS X 10.8.4 のテスト perl プログラムで:
#!/usr/bin/perl
use warnings;
use strict;
use File::BaseName;
my $fname = "/usr/local/junk.txt";
my ($name, $path, $suffix1) = File::BaseName->fileparse($fname, qr'\.[^\.]*');
エラーメッセージが表示される理由:
Can't locate object method "fileparse" via package "File::BaseName"
(perhaps you forgot to load "File::BaseName"?)
さらに言えば、なぜ私は置く必要があるのFile::BaseName
ですか?私がそうしないなら、それは言う
Undefined subroutine &main::fileparse
perl -v は以下を与えます:
これは、darwin-thread-multi-2level 用にビルドされた perl 5、バージョン 12、subversion 4 (v5.12.4) です。
@INC には /System/Library/Perl/5.12/ が含まれており、 /System/Library/Perl/5.12/File/BaseName.pm が存在し、その中に fileparse があります。
それが役立つ場合、私が使用File::Spec
して参照するとFile::Spec->splitpath
、それは正常に機能します(ただし、完全な行を入力する必要があります)。