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