Frage

ich ein Stück Code haben, der nicht funktioniert, wie ich es Arbeit erwarten. Vor allem der definierte Funktion funktioniert nicht.

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

Ich erhalte die Ausgabe

Job 1 is defined

deutlich $jobs[1] ist undef. Was bin ich?

War es hilfreich?

Lösung

Da Sie qw verwenden, Ihr Code entspricht:

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

So $jobs[1] ist die string "undef", die nicht gleich wie undef ist und somit das Verhalten.

Wenn Sie die zweite Job wollen ein undef sein, das Sie tun können:

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

AFAIK Sie können nicht dies getan mit qw erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top