[Perl] require 를 어떻게 써야 하지요?
글쓴이: sDH8988L / 작성시간: 토, 2006/01/21 - 3:51오전
Perl에서 Global Variables을 모아서 File을 하나 만들었습니다. 이걸 include 하려고 require를 다음과 같이 썼는데요...
# a.cfg file
my @name = (... ... ... ...);
# perl file
use strict;
require "a.cfg";
print @name;
이렇게 Code를 짜면, print @name 부분에서 '...require explicit package name...' 이런 식의 Compile Error 가 나네요...
위 Error는 use strict를 썼을 경우, 선언을 하지 않고 Variable을 쓰면 나오는 Error랑 동일한데요. 결국 require에서 include가 잘 안되는 거 같습니다...
어떻게 해야 될까요?
Forums:
그냥 간단하게 얘기해서 제가 하고자 하는 바는 C에서 include 하는
그냥 간단하게 얘기해서 제가 하고자 하는 바는 C에서 include 하는 것처럼 Global Variable들을 여러 개의 Perl File에서 이용하고자 하는 겁니다. 여기서 Global Variable들은 전부 Constant의 성격을 띄고 있어서 여러 Perl File에서 참조만 하는 거지요...
그런데, 왜 이런 간단한 것들이 Tutorial이나 Manual에는 없는 걸까요...
C라면 Chapter 1에 나오는 얘기 아닙니까?
[quote="sDH8988L"]그냥 간단하게 얘기해서 제가 하고자 하는
저도 펄을 잘 아는 게 아니라서 이게 정답인지는 모르겠습니다만....
일단 원하는 결과를 내기 위해서: 펄 파일 쪽에 use strict 를 없애고, a.cfg 에도 my 키워드를 없애 주세요.
반드시 use strict 를 쓸 경우는: 펄 파일 쪽에서 변수를 먼저 선언해줘야 하니
이 때도 역시 a.cfg 에 my 키워드는 없어야 합니다. 잘은 모르겠지만 my 를 붙이면 로컬 변수가 되어 버리는 듯 하군요.
글쎄요. ^^;
좋은 하루 되세요!
[quote="raymundo"][quote="sDH8988L"]그냥 간
덕분에 문제를 해결했습니다. my keyword하고 use strict 부분 때문에 그런 것이었군요...
감사합니다...
그런데, use strict를 쓰는 것이 좀 더 Safe한 Programming을 위해서 좋은데, 저런 식으로 module을 쓰게 되면, use strict가 상당히 한정적으로 사용될 수 밖에 없겠군요...
왜 Perl이 그런 식으로 정의되어 있는 지 상당히 궁금하네요...
다시 한 번 감사드립니다....
추가 질문을 달고 싶은데요...perl 에서 my 라는게 정확히
추가 질문을 달고 싶은데요...
perl 에서 my 라는게 정확히 어떤 의미일까요??
예전에 책을 뒤져보고 뉴스 그룹을 뒤져본 기억으로는
성능상의 효율 때문에 my 라는 키워드가 남아있다고 본 기억이 있는데
명확한 기능을 본 기억이 없는 듯 하네요...
my 는 지역적인 변수에 사용하고
앞의 상황과 같은 경우에는 use strict와 함께 local 로 선언된 변수를 사용하면 되지 않을까요?
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
댓글 달기