gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:23:34 26 4
gpt4 key购买 nike

在 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将防止该问题。

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

#!/usr/bin/perl

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

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

关于macos - 为什么 Perl 找不到 File::BaseName->fileparse?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17770479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com