gpt4 book ai didi

perl - File::Basename->fileparse 返回 "File::Basename"

转载 作者:行者123 更新时间:2023-12-02 07:02:38 25 4
gpt4 key购买 nike

出于某种原因,我的代码正在做这种奇怪的事情,其中​​ fileparse 只打印(字面意思)File::Basename

 use strict;
use warnings 'all';
use File::Basename;

...

my $fileName = File::Basename->fileparse($filePath);
print("$filePath\n");
print("$fileName\n");

输出是:

a/b/c/d.bin
File::Basename

我做错了什么?

最佳答案

fileparse 不是方法;这是一个功能。这个函数是默认导出的,所以你真的想做

use File::Basename;
my $fileName = fileparse($filePath);

您已将 is 用作方法调用。这里 File::Basename->fileparse($filePath) 等同于

fileparse("File::Basename", $filePath)

因为在方法调用中,调用者(通常是一个对象;这里是包名)成为第一个参数。这是错误的,因为它将 "File::Basename" 视为要解析的路径,并将以下参数视为有效后缀列表。

如果您想使用 fileparse 函数而不将其导出到您的命名空间,您可以

use File::Basename (); # note empty parens that supress the import
File::Basename::fileparse(...); # use fully qualified name

关于perl - File::Basename->fileparse 返回 "File::Basename",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17846315/

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