выражение в условии if возвращает true для неправильного сопоставления с образцом (если я не ошибаюсь) - PullRequest
0 голосов
/ 07 января 2019

Я новичок в Perl. пробуя V основной код, где я мог видеть, что неправильное сопоставление с образцом возвращалось к истине. Вставка кода здесь.

my @a =["string", 12]; if( $a[0]=~ /(\d+)/ ){  print"anything";}

Я думаю, что управление программой не должно вводить оператор печати, но на самом деле это так. Не понял, как получилось, что строка совпала со значением цифры (\ d +). Заранее спасибо.

1 Ответ

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

Ваш массив содержит один элемент, ссылка на массив ["string", 12]. Когда ссылка на массив используется в качестве строки, она переводится в нечто вроде ARRAY(0x1e80cb8), которое содержит цифры.

Чтобы назначить два элемента, используйте

my @a = ('string', 12);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...