Голое слово найдено там, где оператор ожидал синтаксической ошибки - PullRequest
0 голосов
/ 14 января 2019

Я новичок в Perl. Во всяком случае, я пытался отлаживать себя. Но я не мог это прибить

Синтаксическая ошибка:

Bareword found where operator expected at D:\DevelopmentLab\softwares\sc-master\sc.pl line 468, near "s%/%_%gr"
syntax error at D:\DevelopmentLab\softwares\sc-master\sc.pl line 468, near "s%/%_%gr"
Execution of D:\DevelopmentLab\softwares\sc-master\sc.pl aborted due to compilation errors.

Код

sub getBackupFileName {
my ($containerName, $volume) = @_;
my $backupFileName = $volume =~ s%/%_%gr;
return "${containerName}_${backupFileName}.tar";
}

Любая помощь будет принята с благодарностью ..

1 Ответ

0 голосов
/ 14 января 2019

Параметр /r для s/.../.../ был добавлен в Perl 5.14 (в 2011 году). Если вы используете более раннюю версию, ваш код не будет работать. У меня нет более ранней версии, доступной для тестирования, поэтому я не могу точно сказать, выдаст ли она сообщение об ошибке, которое вы видите.

Самое простое исправление, чтобы заставить это работать на более ранних версиях Perl, было бы что-то вроде этого:

sub getBackupFileName {
  my ($containerName, $volume) = @_;

  (my $backupFileName = $volume) =~ s%/%_%g;

  return "${containerName}_${backupFileName}.tar";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...