Почему определенная функция не работает?
У меня есть кусок кода, который не работает, как я ожидаю, что он будет работать. В основном определенная функция не работает.
@jobs = qw[job1 undef job2];
if(defined($jobs[1])) {
print "Job 1 is defined";
}
Я получаю вывод
Job 1 is defined
явно $jobs[1]
является undef
, Что мне не хватает?
1 ответ
Решение
Так как вы используете qw
Ваш код эквивалентен:
@jobs = ("job1", "undef", "job2");
Так $jobs[1]
это строка "undef"
который не такой как undef
и, следовательно, поведение.
Если вы хотите, чтобы вторая работа была undef
ты можешь сделать:
@jobs = ("job1", undef, "job2");
AFAIK, вы не можете сделать это с помощью qw
,