учебник - яп perl




Perl не жалуется на недостающие точки с запятой (2)

Я только что нашел на своем Ubuntu, что Perl не жалуется на точку с запятой в конце. Проверьте следующий код:

#!/usr/bin/perl
use warnings;
use strict;

my @array = (1, 2, 3, 4);

foreach (@array)
{
    print $_."\n"
}

print "no, this cant be true"

Обратите внимание, что точка с запятой «;» отсутствует в заявлении печати. Тем не менее код работает нормально.

ВЫХОД:

1
2
3
4
no, this cant be true

Если я поставлю точку с запятой после печати, она все равно будет работать. Так что это меня смущает.

Не могли бы вы помочь мне понять, чего мне здесь не хватает, или есть ли какая-то очевидная идеология Perl, которую я забыл?


Из документации Perl :

Каждый простой оператор должен быть прерван точкой с запятой, если только это не конечный оператор в блоке, и в этом случае точка с запятой является необязательной.


От perldoc perlsyn :

Каждый простой оператор должен быть прерван точкой с запятой, если только это не конечный оператор в блоке, и в этом случае точка с запятой является необязательной.

Ваш оператор печати является последним оператором в блоке.

Однако не рекомендуется использовать полуколону. Слишком легко забыть добавить его, если позже вы расширите блок.





semantics