# 모듈 PERL의 모듈은 확장자로 __.pm__을 사용합니다. 모듈은 *package* 선언으로 시작됩니다. ```perl package MyTest; # MyTest.pm use warnings; use strict; my $var = 1; sub say_hello { return "Hello"; } 1; ``` 스크립트에서 다른 모듈을 사용하려면 `use`등을 사용해서 사용하려는 모듈을 선언해야 합니다. ```perl #!/usr/bin/perl use warnings; use strict; use lib '/home/elex/Workspace/perl-examples'; # @INC에 모듈의 경로를 알려주기 위해 사용되었습니다. use MyTest; # 사용할 모듈을 불러온 다음, $a = MyTest::say_hello(); # 모듈의 서브루틴을 호출합니다. print "$a\n"; ``` - do `@INC`에 정의된 경로에서 모듈 파일을 찾고, 찾은 모듈을 삽입합니다. - require 모듈을 한 번만 불러옵니다. 모듈을 찾지 못하면 오류가 표시됩니다. - use require와 비슷하지만, 프로그램 실행 전에 모듈을 불러옵니다. 대부분의 경우, use가 사용됩니다. ## BEGIN 블록과 END 블록 BEGIN 블록은 스크립트가 로딩된 직후에 다른 실행문이 실행되기 이전에 실행됩니다. END 블록은 스크립트가 실행을 마친 직후에 실행됩니다. ```perl #!/usr/bin/perl use strict; package Foo; sub hello { print 'Hello.'; } BEGIN { print 'Begin..'; } END { print '..End.'; } 1; ```