.pm
(Perl 모듈)과 .pl
(Perl 스크립트) 파일 의 차이점은 무엇입니까 ?
우리 1
가 파일에서 돌아온 이유도 알려주세요 . 2 또는 다른 것을 반환하면 오류가 발생하지 않는데 왜 1
Perl 모듈에서 반환 합니까?
.pm
(Perl 모듈)과 .pl
(Perl 스크립트) 파일 의 차이점은 무엇입니까 ?
우리 1
가 파일에서 돌아온 이유도 알려주세요 . 2 또는 다른 것을 반환하면 오류가 발생하지 않는데 왜 1
Perl 모듈에서 반환 합니까?
답변:
핵심에서 사용하는 파일 확장자는 perl
는 해당 파일을 해석하는 .
그러나 .pm
패키지 이름을 따르는 특정 디렉토리 구조를 따르는 파일 에 모듈을 넣으면 편리합니다. 그래서, 당신은 모듈이 있다면 Example::Plot::FourD
당신은 디렉토리에 넣어 Example/Plot/FourD.pm
당신의 경로에 @INC
다음 use
과 require
같이 패키지 이름을 부여 할 때 옳은 일을 할 것입니다 use Example::Plot::FourD
.
파일은 모든 초기화 코드의 성공적인 실행을 나타 내기 위해 마지막 문으로 true를 반환해야하므로,
1;
그렇지 않으면 true를 반환 할 것이라고 확신하지 않는 한 이러한 파일을 종료하는 것이 일반적 입니다. 그러나1;
문을 더 추가 할 경우를 대비 하여을 입력하는 것이 좋습니다 .
EXPR
가 베어 워드 인 경우 는require
".pm"확장자를 가정하고 파일 이름에서 "::"를 "/"로 대체하여 표준 모듈을 쉽게로드 할 수 있습니다. 이러한 형태의 모듈로드는 네임 스페이스를 변경할 위험이 없습니다.
모든 use
수행이 제공되는 패키지 이름에서 파일 이름, 파악하는 require
A의 그것을 BEGIN
블록과 호출 import
패키지에. 사용하지 않는 것을 방해하는 use
것은 없지만 수동으로 이러한 단계를 수행하십시오.
예를 들어, 아래에서 Example::Plot::FourD
패키지를라는 파일에 넣고 file t.pl
의 스크립트에로드했습니다 s.pl
.
C:\Temp> cat t.pl
package Example::Plot::FourD;
use strict; use warnings;
sub new { bless {} => shift }
sub something { print "something\n" }
"Example::Plot::FourD"
C:\Temp> cat s.pl
#!/usr/bin/perl
use strict; use warnings;
BEGIN {
require 't.pl';
}
my $p = Example::Plot::FourD->new;
$p->something;
C:\Temp> s
something
이 예제는 모듈 파일이으로 끝나지 않아도되며 1
모든 참 값 이 가능함을 보여줍니다 .
.pl은 단일 스크립트입니다.
.pm ( Perl Module )에는 다른 Perl 스크립트에서 사용할 수있는 함수가 있습니다.
Perl 모듈은 Perl 프로그램이나 다른 Perl 모듈에서 사용할 수있는 자체 포함 된 Perl 코드입니다. 개념적으로 C 링크 라이브러리 또는 C ++ 클래스와 유사합니다.
1
상관 없다. 그것은 될 수 있고2
, 될 수도 있고"foo"
, 될 수도 있습니다["a", "list"]
. 중요한 것은0
, 또는 거짓으로 평가되거나use
실패 할 다른 것이 아니라는 것입니다.