¿Por qué define la función no funciona?
Pregunta
Tengo un pedazo de código que no funciona como espero que funcione. Principalmente la función definida no funciona.
@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
print "Job 1 is defined";
}
Me da la salida
Job 1 is defined
claramente $jobs[1]
es undef
. ¿Qué me falta?
Solución
Desde que está utilizando qw
, su código es equivalente a:
@jobs = ("job1", "undef", "job2");
Así $jobs[1]
es la cadena "undef"
que no es igual que undef
y por lo tanto el comportamiento.
Si desea que el segundo trabajo para ser un undef
que puede hacer:
@jobs = ("job1", undef, "job2");
Que yo sepa no se puede conseguir esto usando qw
hecho.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow