¿Por qué hay ningún error emitido por strict
:
use strict;
$a = $a + 1;
¿Por qué hay ningún error emitido por strict
:
use strict;
$a = $a + 1;
$ ay $ b son variables globales especiales utilizados por sort
, por lo que siempre estamos definido. Pruébalo con $ c en su lugar y obtendrás un error.
$a
es una variable global especial. No necesita ser declarado. Ver perldoc perlvar.
En Perl hay algunas variables globales. Aquí $a
y $b
se usan en la función sort.
creo que podría haber dado cuenta, al igual que en esta declaración:
sort { $a <=> $b } @array_name ;
Aunque strict
no se quejan de los especiales variables de $a
y $b
, perlcritic detectará su uso:
magia las variables se deben asignar como "local" ... (Gravedad: 4)
Tenga en cuenta que esto significa que usar $ a y $ b para otros fines es una muy mala idea. (Usar una variable llamada $ c también es malo, pero no tanto y por otros motivos). – ysth