2011-01-20 4 views
2

코드가 작동하지 않을 것으로 예상됩니다. 주로 정의 된 함수가 작동하지 않습니다.정의 된 기능이 작동하지 않는 이유는 무엇입니까?

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

나는 $jobs[1]undef이다 명확하게 출력을

Job 1 is defined 

를 얻을. 내가 뭘 놓치고 있니?

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

그래서 $jobs[1]undef 따라서 동작과 동일하지 않은 문자열"undef"은 다음과 같습니다

답변

10

당신이 qw을 사용하고 있기 때문에, 당신의 코드에 해당합니다.

두 번째 작업은 undef 싶은 경우에 당신이 할 수 있습니다

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

AFAIK 당신이 qw을 사용하여 수행 할 수 없습니다.

+0

감사합니다. codaddict. – user582452

+4

@ user582452 - 데이터 덤퍼 (예 : Data :: Dumper - http://search.cpan.org/dist/Data-Dumper/)는 친구입니다. 'print Dumper (\ @ jobs)'는 배열에 있던 것을 보여 줬을 것이다. – plusplus