Когда вообще нужно наше ключевое слово? - PullRequest
5 голосов
/ 14 июля 2011
perl -e 'use strict;use warnings;$a=2;print $a'

Похоже, что при объявлении глобальной переменной без our предупреждение не появляется, поэтому когда необходимо это ключевое слово?

Ответы [ 2 ]

16 голосов
/ 14 июля 2011

$a и $b являются особыми случаями - они зарезервированы для sort (например, sort { $a <=> $b }) и не должны использоваться для собственных имен переменных - попробуйте еще раз, используя что-то еще, и посмотрите, что произойдет!

11 голосов
/ 14 июля 2011

С perlvar:

   $a
   $b      Special package variables when using "sort()", see "sort" in
           perlfunc.  Because of this specialness $a and $b don't need to
           be declared (using "use vars", or "our()") even when using the
           "strict 'vars'" pragma.
...