2025-02-10T05:29:29

This commit is contained in:
2025-02-10 05:29:29 +09:00
parent e00dd1bfbf
commit 6f1a75f466
45 changed files with 69 additions and 145 deletions

68
docs/17_module.md Normal file
View File

@@ -0,0 +1,68 @@
# 모듈
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;
```