Незавершенная заключенная в кавычки строка (Perl)

Я использую новую версию жемчуга для запущения некоторого старого скрипта. Это - моя версия жемчуга:

This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi (with 67 registered patches, see perl -V for more detail)

Я Очень сбиваю с толку об этой строке в сценарии, который, просто сохранив ошибку, хотя программа выполнима. Возможно, это - b/c, который сценарий был записан долгое время, и жемчуг внес некоторое изменение синтаксиса? Ниже строка:

use warnings;
use strict;
if($#ARGV != 0||$ARGV[0] eq "--help"){ print STDERR "Split bed file into one file per chromosome (keeping and adjusting the header)\n\nUsage: split_bed <BED file>"; }

Сообщение об ошибке:

 1: Syntax error: Unterminated quoted string --hel_  N     N'th byte, character or field, counted from 1p

Кто-либо может помочь мне отладить его?

1
задан 8 March 2019 в 18:10

2 ответа

Это не ошибка Perl. Perl сказал бы:

Can't find string terminator '"' anywhere before EOF

Кажется, что оболочка может произвести подобную ошибку, хотя:

echo 'x="a' | sh
sh: 2: Syntax error: Unterminated quoted string

Как Вы запускаете скрипт? Это содержит строку хижины? Попытайтесь выполнить его с явным perl:

 perl script.pl
0
ответ дан 7 December 2019 в 21:05

Я просто искал историю свой вопрос. С тех пор 5.10.0, жемчуг имеет "Новый определенный - или оператор (//)".

https://en.wikipedia.org/wiki/Perl_5_version_history

Спасибо ~

0
ответ дан 7 December 2019 в 21:05

Другие вопросы по тегам:

Похожие вопросы: