Question

J'ai un morceau de code qui ne fonctionne pas comme je l'attends au travail. PRINCIPALEMENT la fonction définie ne fonctionne pas.

@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
  print "Job 1 is defined";
}

Je reçois la sortie

Job 1 is defined

clairement $jobs[1] est undef. Qu'est-ce que je manque?

Était-ce utile?

La solution

Puisque vous utilisez qw, votre code est équivalent à:

@jobs = ("job1", "undef", "job2");

$jobs[1] est la chaîne "undef" qui n'est pas identique à undef et donc le comportement.

Si vous voulez que le deuxième emploi pour être un undef que vous pouvez faire:

@jobs = ("job1", undef, "job2");

AFAIK vous ne pouvez pas obtenir ce fait en utilisant qw.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top