Почему ограничения Perl не жалуются на необъявленный $ a? - PullRequest
5 голосов
/ 10 марта 2010

Почему нет ошибки, выданной strict:

use strict;

$a = $a + 1;

Ответы [ 4 ]

14 голосов
/ 10 марта 2010

$ a и $ b - это специальные глобальные переменные, используемые sort, поэтому они всегда определены. Попробуйте вместо этого использовать $ c, и вы получите ошибку.

6 голосов
/ 10 марта 2010

Хотя strict не жалуется на специальные переменные $a и $b, perlcritic обнаружит их использование:

Магические переменные должны быть назначены как "местный" ... (уровень серьезности: 4)

5 голосов
/ 10 марта 2010

$a - это специальная глобальная переменная. Это не должно быть объявлено. См. perldoc perlvar .

2 голосов
/ 10 марта 2010

В Perl есть несколько глобальных переменных. Здесь $a и $b используются в функции sort .

Я думаю, вы могли заметить, как в этом утверждении:

sort { $a <=> $b } @array_name ; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...