在 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
,它工作正常(但我必须把整行)。