2014-01-23 2 views
2

Следующий код имеет необычное поведение, которое я обнаружил нечетным. Это просто часть программы, которая работает иначе.

#!/usr/bin/perl -w 

    use strict; 

    $a = 0; 
    $abc = 0;                      

exit 0; 

Благодаря use strict заявлению Perl настаивает, что я могу изменить второе заявление, как:

my $abc = 0;

Но это не делает этого для $a! Я попробовал это на нескольких дистрибутивах Linux и Perl. Может ли кто-нибудь объяснить причину, пожалуйста?

ответ

10

От perldoc strict

Из-за их особого использования вида(), переменные $ а и $ Ь, освобождаются от этой проверки

+0

Хорошо! Теперь я понимаю. Благодаря! – user926918

0

$a используется для рода() и как таковой не требует декларации.