(A vacío) Ha hecho algo, sin efectos colaterales, en un contexto que no hace nada con el valor de retorno, como una sentencia que no devuelve un valor de retorno desde un bloque, o el lado izquierdo de un operador escalar coma. Muy a menudo esto no apunta a que sea una estupidez por parte suya, sino a un fallo de Perl al interpretar su programa de la manera que usted pensaba que lo haría. Por ejemplo, usted obtiene esto si mezcla la precedencia de C con la precedencia de Pyhton, y escribe:
$uno, $dos = 1, 2;
cuando lo que realmente quería decir
($uno, $dos) = (1, 2);
Otro error muy común usar paréntesis normales para construir una referencia a una lista cuando debería usar corchetes o llaves; por ejemplo, si dice
$array = (1,2);
cuando realmente quería haber dicho
$array = [1,2];
Los corchetes, explícitamente, convierten un valor de lista en un valor escalar, mientras que los paréntesis, no. De esta forma, cuando una lista, entre paréntesis, es evaluada en contexto escalar, la coma se trata como el operador coma del C, que descarta el argumento de la izquierda, que no era lo que usted quería. Ver perlref para más información sobre esto.
Este aviso no aparecerá en constantes numéricas iguales a 0 o 1, porque a menudo se usan en sentencias como
1 while sub_con_efectos_laterales();
Cadenas de caracteres constantes que, de forma normal, se evaluarían a 0 o 1, sí que activarán el aviso.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4