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?

¿Fue útil?

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
scroll top