使用Perl的File :: Basename重命名文件扩展名

时间:2019-05-17 20:09:05

标签: perl

收到以下警告消息,如何消除它?

Use of uninitialized value $suffix in concatenation (.) or string at /usr/share/perl5/File/Basename.pm line 167. Use of uninitialized value $suffix in substr at /usr/share/perl5/File/Basename.pm line 169.

正在使用的代码:

use File::Copy;
use File::Basename qw(fileparse);

my @mtf;
my $name;
my $dir;
my $ext;
my $ascii;
my $suffix="";

($name, $dir, $suffix) = fileparse(@mtf,qr/\.[^.]*$/);
$name =~ s/\.$suffix$//;
system("cp $mtf[0] $name.ASCII");
$ascii = "$name.ASCII";

1 个答案:

答案 0 :(得分:2)

fileparse(@mtf,qr/\.[^.]*$/);没有任何意义。由于必须确保@mtf包含一个元素才能正常工作,因此使用数组代替标量是没有意义的。

您没有显示@mtf所包含的内容,但是它显然不是单个元素,或者单个元素与正则表达式模式\.[^.]*$不匹配。