2011-02-26 4 views
2
#!/usr/bin/env perl 
use warnings; 
use 5.012; 

say "no semicolon" 

say "World"; 
say "World"; 
say "World"; 
say "World"; 
say "World"; 

# syntax error at ./perl1.pl line 7, near "say" 
# Execution of ./perl1.pl aborted due to compilation errors. 

.컴파일 타임 오류에 대한 질문

#!/usr/bin/env perl 
use warnings; 
use 5.012; 

my $character = "\x{ffff}"; 

say "Hello"; 
say "Hello"; 
say "Hello"; 
say "Hello"; 
say "Hello"; 

# Unicode non-character 0xffff is illegal for interchange at ./perl1.pl line 5. 
# Hello 
# Hello 
# Hello 
# Hello 
# Hello 

왜 두 번째 스크립트에서 컴파일 시간 오류가 발생했는지 알려지지 않습니까?

내가 할 수없는 경우 - "경고 사용 경고 => qw (모두);" Try :: Tiny 또는 block-eval로 오류를 잡아라, 컴파일 타임 오류라는 결론을 내릴 수 있을까?

#!/usr/bin/env perl 
use warnings FATAL => qw(all); 
use 5.012; 
use Try::Tiny; 

my $character; 

try { 
    $character = "\x{ffff}"; 
} catch { 
    die "---------- caught error ----------\n"; 
}; 

say "something"; 

# Unicode non-character 0xffff is illegal for interchange at ./perl1.pl line 9. 
+0

프로그램이 실행되었으므로 프로그램에 컴파일 타임 오류가 없어야합니다 ... 컴파일 타임 오류가 발생하면 프로그램을 실행할 수 없습니다. – tadmc

+0

질문 : "... 런타임 오류가없고 런타임 경고가 없다는 결론을 내릴 수 있습니까?" –

답변

7

Unicode non-character 0xffff is illegal for interchange at ...은 컴파일 타임 경고입니다.

use warnings FATAL => all 때 Perl에게 모든 경고를 오류로 처리하도록 요청할 것이므로 컴파일 타임 오류가 발생합니다.

관련 문제