加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

macos – 为什么Perl不能找到File :: BaseName-> fileparse?

发布时间:2020-12-15 23:20:34 所属栏目:大数据 来源:网络整理
导读:在OS X 10.8.4上,在测试perl程序中: #!/usr/bin/perluse warnings;use strict;use File::BaseName;my $fname = "/usr/local/junk.txt";my ($name,$path,$suffix1) = File::BaseName-fileparse($fname,qr'.[^.]*'); 我收到错误消息的任何想法: Can't loca
在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给出:

This is perl 5,version 12,subversion 4 (v5.12.4) built for
darwin-thread-multi-2level

And @INC includes /System/Library/Perl/5.12/ and
/System/Library/Perl/5.12/File/BaseName.pm exists and has fileparse in
it.

如果它有帮助,当我使用File :: Spec并参考File :: Spec-> splitpath时,它工作正常(但我必须把整行).

解决方法

区分大小写:
Basename用小写字母“N”写成. Acme::require::case将防止这个问题.

此外,在导入File :: Basename模块后,您不必为fileparse使用限定名称:

#!/usr/bin/perl

use warnings;
use strict;
use File::Basename; # !!!

my $fname = "/usr/local/junk.txt";
my ($name,$suffix1) = fileparse($fname,qr'.[^.]*'); # !!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读