Использование Perl File :: Basename для переименования расширения файла - PullRequest
0 голосов
/ 17 мая 2019

Получив следующее предупреждающее сообщение, как мне от него избавиться?

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 Ответ

2 голосов
/ 18 мая 2019

fileparse(@mtf,qr/\.[^.]*$/); не имеет смысла. Поскольку вы должны убедиться, что @mtf содержит ровно один элемент, чтобы это работало, нет смысла использовать массив вместо скаляра.

Вы не показали, что содержится в @mtf, но, по-видимому, это не единственный элемент или один элемент не соответствует шаблону регулярного выражения \.[^.]*$.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...