Thursday, August 10, 2006
Perl 에러 해결법] Bareword 'FH' not allowed while 'strict subs' in use at foo.pl line nnn.
펄을 사용하다 보면 이런 에러가 자주 납니다.
open FH, "<", $ARGV[0] or die "$!: '$ARGV[0]'\n";
이렇게 파일을 오픈한 후
foreach (<FH>) {
가 아닌
foreach (FH) {...
이렇게 적어주면 그런 에러가 나옵니다.
파일 핸들이, 현재 발가벗은(Bare) 상태이니, <FH> 이런 식으로 둘러싸 주어야 한다는 의미입니다.
그러나 open 으로 파일 핸들을 만들 때에는 둘러싸주면 안됩니다.
open <FH>, "<", $ARGV[0] or die "$!: '$ARGV[0]'\n";
그러면 이런 에러가 납니다.
Bareword "FH" not allowed while "strict subs" in use at foo.pl line 17.
Execution of foo.pl aborted due to compilation errors.
Execution of foo.pl aborted due to compilation errors.
open FH, "<", $ARGV[0] or die "$!: '$ARGV[0]'\n";
이렇게 파일을 오픈한 후
foreach (<FH>) {
가 아닌
foreach (FH) {...
이렇게 적어주면 그런 에러가 나옵니다.
파일 핸들이, 현재 발가벗은(Bare) 상태이니, <FH> 이런 식으로 둘러싸 주어야 한다는 의미입니다.
그러나 open 으로 파일 핸들을 만들 때에는 둘러싸주면 안됩니다.
open <FH>, "<", $ARGV[0] or die "$!: '$ARGV[0]'\n";
그러면 이런 에러가 납니다.
Type of arg 1 to open must be HANDLE (not <HANDLE>) at foo.pl line 7, near "] or"
Execution of foo.pl aborted due to compilation errors.
Execution of foo.pl aborted due to compilation errors.
tag: perl
Perl | 펄
<< Home