perl-File::Basename->;fileparse返回“;文件::Basename";
出于某种原因,我的代码正在做这个wierd的事情,perl-File::Basename->;fileparse返回“;文件::Basename";,perl,fileparse,Perl,Fileparse,出于某种原因,我的代码正在做这个wierd的事情,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::Base
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
我做错了什么?文件解析不是一种方法;这是一个函数。默认情况下会导出此函数,因此您实际上需要执行以下操作
use File::Basename;
my $fileName = fileparse($filePath);
您已将is用作方法调用。这里的File::Basename->fileparse($filePath)
相当于
fileparse("File::Basename", $filePath)
因为在方法调用中,invocant(通常是一个对象;这里是包名)成为第一个参数。这是错误的,因为它将“File::Basename”
视为解析路径,并将以下参数视为有效后缀的列表
如果要使用fileparse
函数而不将其导出到命名空间,可以
use File::Basename (); # note empty parens that supress the import
File::Basename::fileparse(...); # use fully qualified name