Dlaczego nie ma błędu wydane przez strict
:
use strict;
$a = $a + 1;
Dlaczego nie ma błędu wydane przez strict
:
use strict;
$a = $a + 1;
$ ai $ b są specjalne globalne używane przez sort
, więc oni zawsze określone. Spróbuj zamiast tego za pomocą $ c, a otrzymasz błąd.
$a
to specjalna zmienna globalna. Nie musi być zadeklarowana. Zobacz perldoc perlvar.
W Perlu jest kilka zmiennych globalnych. Tutaj $a
i $b
są używane w funkcji sort.
myślę, można zauważyć, jak w tym zdaniu:
sort { $a <=> $b } @array_name ;
Chociaż strict
nie narzekają specjalnych $a
i $b
zmiennych perlcritic wykryje ich wykorzystania:
Magii zmienne powinny być przypisane jako "lokalne" ... (stopień ważności: 4)
Należy zauważyć, że oznacza to, że używanie $ a i $ b do innych celów jest naprawdę złym pomysłem. (Używanie zmiennej o nazwie $ c jest również złe, ale mniej iz innych powodów). – ysth