이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 perlintro 명령입니다.
프로그램:
이름
perlintro - Perl에 대한 간략한 소개 및 개요
기술
이 문서는 Perl 프로그래밍 언어에 대한 빠른 개요를 제공하기 위한 것입니다.
추가 문서에 대한 포인터와 함께. 이는 "부트스트랩" 가이드로 작성되었습니다.
언어를 처음 접하고 당신이 할 수 있을 만큼 충분한 정보를 제공하는 사람들
다른 사람의 Perl을 읽고 그 내용을 대략적으로 이해하거나 직접 작성하는 것
간단한 스크립트.
이 소개 문서는 완성을 목표로 하지 않습니다. 그러는 것을 목표로 하지도 않는다.
완전히 정확합니다. 어떤 경우에는 완벽함을 얻기 위해 희생하기도 했습니다.
전반적인 아이디어. 당신은 강하게 이 소개를 더 자세히 따르는 것이 좋습니다.
전체 Perl 매뉴얼의 정보, 목차는 다음에서 찾을 수 있습니다.
펄톡.
이 문서 전반에 걸쳐 Perl 문서의 다른 부분에 대한 참조를 볼 수 있습니다.
"perldoc" 명령이나 원하는 방법을 사용하여 해당 문서를 읽을 수 있습니다.
이 문서를 읽는 데 사용됩니다.
Perl의 문서 전반에 걸쳐 설명을 돕기 위한 수많은 예제를 찾을 수 있습니다.
논의된 기능. 그 중 대부분은 코드 조각이라는 점을 명심하세요.
완전한 프로그램보다
이러한 예는 종종 해당 작품의 저자의 스타일과 선호도를 반영합니다.
문서화되며 실제 프로그램의 해당 코드 줄보다 짧을 수 있습니다.
별도로 명시하지 않는 한 "엄격한 사용" 및 "경고 사용"을 가정해야 합니다.
명령문은 "프로그램"의 앞부분에 나타나며 사용된 모든 변수는 이미
예제를 더 쉽게 읽을 수 있도록 해당 선언이 생략된 경우에도 마찬가지입니다.
이 예제는 오랜 기간에 걸쳐 다양한 저자에 의해 작성되었습니다.
수십 년. 따라서 약간의 노력이 필요하더라도 스타일과 기술은 다를 수 있습니다.
같은 섹션에서 스타일을 너무 크게 바꾸지 않도록 만들어졌습니다. 하나의 스타일을 고려하지 마세요
다른 사람보다 더 나은 사람이 되려면 - "그것을 하는 데는 한 가지 이상의 방법이 있다"는 Perl의 모토 중 하나입니다.
결국, 프로그래머로서의 여정에서 당신은 다양한 스타일을 접하게 될 것입니다.
뭐 is 펄?
Perl은 원래 텍스트 조작을 위해 개발된 범용 프로그래밍 언어입니다.
이제는 시스템 관리, 웹 개발,
네트워크 프로그래밍, GUI 개발 등.
언어는 실용적인 것(사용하기 쉽고, 효율적이고, 완전함)을 목표로 합니다.
아름답다(작은, 우아한, 최소한의). 가장 큰 특징은 사용하기 쉽다는 점,
절차적 프로그래밍과 객체 지향(OO) 프로그래밍을 모두 지원하며 강력한 내장 기능을 갖추고 있습니다.
텍스트 처리를 지원하며 세계에서 가장 인상적인 컬렉션 중 하나를 보유하고 있습니다.
타사 모듈.
Perl에 대한 다양한 정의는 perl, perlfaq1 및 의심할 바 없이 다른 곳에서 제공됩니다. 에서
이를 통해 우리는 Perl이 사람마다 다르다는 것을 알 수 있습니다.
사람들은 그것이 적어도 글을 쓸 가치가 있다고 생각합니다.
달리는 펄 프로그램
Unix 명령줄에서 Perl 프로그램을 실행하려면:
펄 프로그램 이름.pl
또는 다음을 스크립트의 첫 번째 줄에 입력하세요.
#!/usr/빈/환경 펄
... 다음과 같이 스크립트를 실행합니다. /경로/to/script.pl. 물론 실행 가능해야 합니다.
먼저 "chmod 755 script.pl"(Unix에서)입니다.
(이 시작선은 당신이 환경 프로그램. 경로를 직접 입력할 수도 있습니다.
"#!/usr/빈/펄").
Windows 및 Mac과 같은 다른 플랫폼에 대한 지침을 포함한 자세한 내용은
OS, perlrun을 읽어보세요.
안전 그물
Perl은 기본적으로 매우 관대합니다. 더욱 견고하게 만들려면 다음을 수행하는 것이 좋습니다.
다음 줄로 모든 프로그램을 시작하십시오.
#!/usr/빈/펄
엄격한 사용;
경고를 사용하십시오.
코드의 다양한 일반적인 문제를 파악하기 위해 Perl에서 두 개의 추가 라인을 요청합니다.
서로 다른 사항을 확인하므로 둘 다 필요합니다. "use strict;"로 인해 발견되는 잠재적인 문제
"경고를 사용"하는 동안 코드가 발견되면 즉시 중지됩니다.
단지 경고만 제공합니다(명령줄 스위치와 유사). -w) 코드를 실행해 보세요. 에게
이에 대한 자세한 내용은 엄격 및 경고에 대한 해당 매뉴얼 페이지를 확인하세요.
Basic 구문 개요
Perl 스크립트나 프로그램은 하나 이상의 명령문으로 구성됩니다. 이러한 진술은 단순히
대본에 직설적으로 작성되었습니다. "main()"이 필요하지 않습니다.
기능이든 뭐든.
Perl 문은 세미콜론으로 끝납니다.
"Hello, world"를 인쇄합니다.
주석은 해시 기호로 시작하여 줄 끝까지 실행됩니다.
# 댓글입니다
공백은 관련이 없습니다.
인쇄
"안녕, 세상아"
;
... 인용된 문자열 내부를 제외하고:
# 중간에 줄 바꿈을 사용하여 인쇄됩니다.
인쇄 "안녕하세요
세계";
리터럴 문자열 주위에는 큰따옴표나 작은따옴표를 사용할 수 있습니다.
"Hello, world"를 인쇄합니다.
'Hello, world'를 인쇄하세요.
그러나 큰따옴표만 변수와 다음과 같은 특수 문자를 "보간"합니다.
개행 문자("\n"):
"안녕하세요, $name\n"을 인쇄합니다. # 잘 작동해요
'안녕하세요, $name\n'을 인쇄합니다. # $name\n을 문자 그대로 인쇄합니다.
숫자에는 따옴표가 필요하지 않습니다.
42를 인쇄하십시오;
함수의 인수에 괄호를 사용하거나 개인에 따라 생략할 수 있습니다.
맛. 우선 순위 문제를 명확히 하기 위해 가끔씩만 필요합니다.
print("안녕하세요, 세계\n");
"안녕하세요, 세계\n"을 인쇄합니다;
Perl 구문에 대한 더 자세한 정보는 perlsyn에서 찾을 수 있습니다.
펄 변수 유형
Perl에는 스칼라, 배열, 해시라는 세 가지 주요 변수 유형이 있습니다.
스칼라
스칼라는 단일 값을 나타냅니다.
내 $animal = "낙타";
내 $답변 = 42;
스칼라 값은 문자열, 정수 또는 부동 소수점 숫자일 수 있으며 Perl은
필요에 따라 자동으로 변환됩니다. 미리 선언할 필요는 없습니다.
변수 유형은 처음으로 "my" 키워드를 사용하여 선언해야 합니다.
그것을 써. (이것은 "use strict;"의 요구 사항 중 하나입니다.)
스칼라 값은 다양한 방법으로 사용될 수 있습니다.
$animal 인쇄;
"동물은 $animal\n입니다"를 인쇄합니다.
print "$답변의 제곱은 ", $답변 * $답변, "\n";
구두점이나 줄처럼 보이는 이름을 가진 "마법의" 스칼라가 많이 있습니다.
소음. 이러한 특수 변수는 모든 종류의 목적으로 사용되며 문서화되어 있습니다.
펄바르에서. 지금 알아야 할 유일한 것은 "기본값"인 $_입니다.
변수". Perl의 여러 함수에 대한 기본 인수로 사용됩니다.
특정 루핑 구문에 의해 암시적으로 설정됩니다.
인쇄; # 기본적으로 $_의 내용을 인쇄합니다.
배열
배열은 값 목록을 나타냅니다.
my @animals = ("낙타", "라마", "올빼미");
내 @숫자 = (23, 42, 69);
내 @mixed = ("낙타", 42, 1.23);
배열은 XNUMX부터 인덱스됩니다. 배열의 요소를 얻는 방법은 다음과 같습니다.
$animals[0] 인쇄; # "낙타"를 인쇄합니다
$animals[1] 인쇄; # "라마"를 인쇄합니다.
특수 변수 $#array는 배열의 마지막 요소 인덱스를 알려줍니다.
$mixed[$#mixed] 인쇄; # 마지막 요소, 1.23을 인쇄합니다.
"$#array + 1"을 사용하여 항목 수를 알려주고 싶을 수도 있습니다.
정렬. 귀찮게 하지 마세요. 공교롭게도 Perl이 스칼라를 찾을 것으로 예상하는 곳에 @array를 사용합니다.
value("in 스칼라 컨텍스트")는 배열의 요소 수를 제공합니다.
if (@animals < 5) { ... }
배열에서 가져오는 요소는 "$"로 시작합니다.
배열의 단일 값; 스칼라를 요청하면 스칼라를 얻습니다.
배열에서 여러 값을 얻으려면:
@animals[0,1]; # 제공 ("낙타", "라마");
@animals[0..2]; # 제공 ("낙타", "라마", "올빼미");
@animals[1..$#animals]; # 첫 번째 요소를 제외한 모든 요소 제공
이것을 "배열 슬라이스"라고 합니다.
목록에 대해 다양한 유용한 작업을 수행할 수 있습니다.
내 @sorted = @animals 정렬;
내 @backwards = 역 @숫자;
@ARGV(명령줄 인수)와 같은 몇 가지 특수 배열도 있습니다.
스크립트) 및 @_(서브루틴에 전달된 인수)입니다. 이것들은 다음 문서에 문서화되어 있습니다.
펄바.
해시
해시는 키/값 쌍 집합을 나타냅니다.
my %fruit_color = ("사과", "빨간색", "바나나", "노란색");
공백과 "=>" 연산자를 사용하여 더 멋지게 배치할 수 있습니다.
내 %fruit_color = (
사과 => "빨간색",
바나나 => "노란색",
);
해시 요소를 얻으려면:
$fruit_color{"사과"}; # "빨간색" 제공
"keys()" 및 "values()"를 사용하여 키와 값 목록을 얻을 수 있습니다.
내 @fruits = 키 %fruit_colors;
내 @colors = 값 %fruit_colors;
해시에는 특별한 내부 순서가 없지만 키를 정렬하고 반복할 수 있습니다.
그들을 통해.
특수 스칼라 및 배열과 마찬가지로 특수 해시도 있습니다. 가장 잘
그 중 알려진 것은 환경 변수를 포함하는 %ENV입니다. 이에 대한 모든 내용을 읽어 보십시오(그리고
다른 특수 변수)는 perlvar에 있습니다.
스칼라, 배열 및 해시는 perldata에 더 자세히 설명되어 있습니다.
참조를 사용하여 보다 복잡한 데이터 유형을 구성할 수 있습니다.
목록과 해시 내의 목록과 해시.
참조는 스칼라 값이며 다른 Perl 데이터 유형을 참조할 수 있습니다. 그래서 저장함으로써
배열이나 해시 요소의 값으로 참조하면 목록과 해시를 쉽게 만들 수 있습니다.
목록과 해시 내에서. 다음 예는 해시 구조의 2레벨 해시를 보여줍니다.
익명의 해시 참조를 사용합니다.
내 $변수 = {
스칼라 => {
설명 => "단일 항목",
인장 => '$',
},
배열 => {
설명 => "주문된 항목 목록",
인장 => '@',
},
해시 => {
설명 => "키/값 쌍",
인장 => '%',
},
};
print "스칼라는 $variables->{'scalar'}->{'sigil'}\n으로 시작합니다";
참조 주제에 대한 자세한 정보는 perlreftut, perllol,
perlref 및 perldsc.
변하기 쉬운 범위
이전 섹션 전체에서 모든 예제에서는 다음 구문을 사용했습니다.
내 $var = "값";
"my"는 실제로 필요하지 않습니다. 당신은 그냥 사용할 수 있습니다 :
$var = "값";
그러나 위의 사용법은 프로그램 전체에 걸쳐 전역 변수를 생성하게 됩니다.
나쁜 프로그래밍 습관. "my"는 대신 어휘 범위 변수를 생성합니다. 변수
범위는 블록(즉, 중괄호로 묶인 여러 명령문)으로 지정됩니다.
그들은 정의되어 있습니다.
내 $x = "foo";
내 $some_condition = 1;
if ($some_condition) {
내 $y = "바";
$x를 인쇄하세요; # "foo"를 인쇄합니다.
$y를 인쇄하세요; # "bar"를 인쇄합니다.
}
$x를 인쇄하세요; # "foo"를 인쇄합니다.
$y를 인쇄하세요; # 아무것도 인쇄하지 않습니다; $y는 범위를 벗어났습니다.
"my"를 "use strict"와 함께 사용합니다. Perl 스크립트 상단에 있는 것은 다음을 의미합니다.
통역사는 특정 일반적인 프로그래밍 오류를 포착합니다. 예를 들어,
위의 예에서 마지막 "print $y"는 컴파일 타임 오류를 일으키고
프로그램을 실행 중입니다. "엄격함"을 사용하는 것이 좋습니다.
가정 어구 그리고 루핑 구성
Perl에는 대부분의 일반적인 조건부 및 반복 구문이 있습니다. Perl 5.10부터는 심지어
Case/switch 문이 있습니다(철자: "given"/"when"). Perlsyn의 "Switch 문"을 참조하십시오.
자세한 내용은.
조건은 Perl 표현식일 수 있습니다. 다음 섹션의 연산자 목록을 참조하세요.
일반적으로 사용되는 비교 및 부울 논리 연산자에 대한 정보
조건문.
if
if (조건) {
...
} elsif (다른 조건) {
...
} 다른 {
...
}
부정된 버전도 있습니다.
않는 한 ( 조건 ) {
...
}
이는 "if (!상태)".
Perl에는 중괄호가 필요합니다.
차단하다. 그러나 한 줄 조건부 블록을 더 많이 만드는 영리한 방법이 있습니다.
영어는 다음과 같습니다:
# 전통적인 방식
만약 ($zippy) {
"야!"를 인쇄하세요;
}
# Perlish 사후 조건 방식
"야!"를 인쇄하세요. $zippy인 경우;
$bananas가 아니면 "우리는 바나나가 없습니다"를 인쇄합니다;
동안
동안(조건) {
...
}
"unless"가 있는 것과 같은 이유로 부정된 버전도 있습니다.
~까지 (조건) {
...
}
사후 조건에 "while"을 사용할 수도 있습니다.
1인 동안 "LA LA LA\n"을 인쇄합니다. # 영원히 반복된다
C와 정확히 같은 경우:
for ($i = 0; $i <= $max; $i++) {
...
}
Perl에서는 C 스타일의 for 루프가 거의 필요하지 않습니다. 왜냐하면 Perl이 더 친숙한 방식을 제공하기 때문입니다.
목록 검색 "foreach" 루프.
각각
foreach (@array) {
"이 요소는 $_\n"을 인쇄합니다.
}
$list[$_] foreach 0 .. $max;를 인쇄합니다.
# 기본값인 $_를 사용할 필요도 없습니다...
foreach 내 $key(키 %hash) {
print "$key의 값은 $hash{$key}\n입니다";
}
"foreach" 키워드는 실제로 "for" 키워드와 동의어입니다. ""Foreach를 참조하십시오
루프"는 perlsyn"에 있습니다.
루프 구성(및 이 개요에서 언급되지 않은 일부)에 대한 자세한 내용
펄신을 참조하세요.
빌트인 운영자 그리고 기능
Perl에는 다양한 내장 기능이 포함되어 있습니다. 우리가 이미 가지고 있는 것 중 일부는
"인쇄", "정렬" 및 "역방향"이 포함됩니다. 그 목록은 시작 부분에 제공됩니다.
perlfunc를 사용하면 "perldoc -f"를 사용하여 특정 기능에 대해 쉽게 읽을 수 있습니다.
함수 이름".
Perl 연산자는 perlop에 전체적으로 문서화되어 있지만 다음은 가장 일반적인 몇 가지 사항입니다.
그들 :
산수
+ 추가
- 빼기
* 곱셈
/ 분할
수치비교
== 평등
!= 불평등
< 미만
>보다 큼
<= 작거나 같음
>= 크거나 같음
문자열 비교
eq 평등
네 불평등
그보다 적어요
gt보다 큼
르 작거나 같음
ge보다 크거나 같음
(왜 숫자 비교와 문자열 비교가 별도로 있나요?
특별한 변수 유형과 Perl은 숫자로 정렬할지 여부를 알아야 합니다(여기서 99
100보다 작음) 또는 알파벳순으로(100이 99 앞에 옴)
부울 논리
&& 그리고
|| 또는
! ~ 아니다
("and", "or" 및 "not"은 위 표에 설명된 것만이 아닙니다.
연산자. 또한 자체적으로 연산자로도 지원됩니다. 그들은 더
C 스타일 연산자보다 읽을 수 있지만 "&&" 및
친구. 자세한 내용은 Perlop을 확인하세요.)
그 외
= 할당
. 문자열 연결
x 문자열 곱셈
.. 범위 연산자(숫자 또는 문자열 목록 생성)
다음과 같이 많은 연산자를 "="와 결합할 수 있습니다.
$a += 1; # $a = $a + 1과 동일
$a -= 1; # $a = $a - 1과 동일
$a .= "\n"; # $a = $a 와 동일합니다. "\N";
파일 그리고 I / O
"open()" 함수를 사용하여 입력 또는 출력을 위해 파일을 열 수 있습니다. 에 문서화되어 있습니다.
perlfunc 및 perlopentut의 사치스러운 세부 사항이지만 간단히 말해서 다음과 같습니다.
open(my $in, "<", "input.txt") 또는 die "input.txt를 열 수 없습니다: $!";
open(my $out, ">", "output.txt") 또는 die "output.txt를 열 수 없습니다: $!";
open(my $log, ">>", "my.log") 또는 die "my.log를 열 수 없습니다: $!";
"<>" 연산자를 사용하여 열린 파일 핸들에서 읽을 수 있습니다. 스칼라 컨텍스트에서는 다음과 같이 읽습니다.
파일 핸들의 한 줄, 목록 컨텍스트에서는 전체 파일을 읽습니다.
목록의 요소에 각 줄을 할당합니다.
내 $line = <$in>;
내 @lines = <$in>;
한 번에 전체 파일을 읽는 것을 후루룩 마시는 행위라고 합니다. 유용할 수도 있지만 그럴 수도 있어요
기억의 돼지. 대부분의 텍스트 파일 처리는 Perl의 루핑을 사용하여 한 번에 한 줄씩 수행할 수 있습니다.
구성.
"<>" 연산자는 "while" 루프에서 가장 자주 사용됩니다.
while (<$in>) { # 각 줄을 차례로 $_에 할당합니다.
print "이 줄만 읽으세요: $_";
}
우리는 이미 "print()"를 사용하여 표준 출력으로 인쇄하는 방법을 살펴보았습니다. 그러나 "인쇄()"
또한 인쇄할 파일 핸들을 지정하는 선택적 첫 번째 인수를 취할 수도 있습니다.
print STDERR "이것이 마지막 경고입니다.\n";
$out $record를 인쇄하세요;
$log $logmessage 인쇄;
파일 핸들 작업이 끝나면 파일 핸들을 "close()"해야 합니다(솔직히 말하면
잊어버린 경우 Perl이 정리합니다.):
$in을 닫거나 죽으면 "$in: $!";
정규병 표현
Perl의 정규식 지원은 광범위하고 깊으며, 오랫동안 다루어야 할 주제입니다.
perlrequick, perlretut 및 다른 곳의 문서. 그러나 간단히 말해서:
단순 매칭
if (/foo/) { ... } # $_에 "foo"가 포함되어 있으면 true
if ($a =~ /foo/) { ... } # $a에 "foo"가 포함되어 있으면 true
"//" 일치 연산자는 perlop에 문서화되어 있습니다. 기본적으로 $_에서 작동합니다. 또는
"=~" 바인딩 연산자를 사용하여 다른 변수에 바인딩할 수 있습니다.
퍼롭).
단순 대체
s/foo/bar/; # $_에서 foo를 bar로 대체합니다.
$a =~ s/foo/bar/; # $a에서 foo를 bar로 대체합니다.
$a =~ s/foo/bar/g; # foo의 모든 인스턴스를 bar로 대체합니다.
# $a에
"s///" 대체 연산자는 perlop에 문서화되어 있습니다.
더 복잡한 정규식
고정 문자열에서만 일치시킬 필요는 없습니다. 실제로 거의 일치할 수 있습니다.
더 복잡한 정규식을 사용하면 무엇이든 꿈꿀 수 있습니다. 이것들은
Perlre에는 아주 길게 문서화되어 있지만 그 동안은 여기에 빠른 치트가 있습니다.
시트:
. 단일 문자
\sa 공백 문자(공백, 탭, 개행,
~)
\S 공백이 아닌 문자
\da 숫자(0-9)
\D 숫자가 아닌 문자
\wa 단어 문자(az, AZ, 0-9, _)
\W 단어가 아닌 문자
[aeiou]는 주어진 세트의 단일 문자와 일치합니다.
[^aeiou]는 주어진 문자 이외의 단일 문자와 일치합니다.
세트
(foo|bar|baz)는 지정된 대안 중 하나와 일치합니다.
^ 문자열의 시작
$ 문자열 끝
수량자는 일치시키려는 이전 항목의 수를 지정하는 데 사용할 수 있습니다.
on, 여기서 "thing"은 리터럴 문자나 나열된 메타 문자 중 하나를 의미합니다.
위 또는 괄호 안의 문자 또는 메타문자 그룹입니다.
* XNUMX개 이상의 이전 항목
+ 이전 항목 중 하나 이상
? XNUMX 또는 이전 것 중 하나
{3}은(는) 이전 항목의 정확히 3개와 일치합니다.
{3,6}은 이전 항목의 3과 6 사이에서 일치합니다.
{3,}은 이전 항목 중 3개 이상과 일치합니다.
몇 가지 간단한 예:
/^\d+/ 문자열은 하나 이상의 숫자로 시작합니다.
/^$/ 문자열에 아무것도 없습니다(시작과 끝은
인접한)
/(\d\s){3}/ 세 자리 숫자, 각각 뒤에 공백이 있음
문자(예: "3 4 5")
/(a.)+/는 모든 홀수 번호가 있는 문자열과 일치합니다.
문자는 (예: "abacadaf")입니다.
# 이 루프는 STDIN에서 읽고 비어 있지 않은 줄을 인쇄합니다.
동안(<>) {
다음 if /^$/;
인쇄;
}
캡처용 괄호
그룹화 외에도 괄호는 두 번째 목적으로 사용됩니다. 캡처하는 데 사용할 수 있습니다.
나중에 사용하기 위해 정규식 일치 부분의 결과입니다. 결과는 $1, $2로 끝납니다.
등등.
# 이메일 주소를 여러 부분으로 나누는 저렴하고 불쾌한 방법
if ($email =~ /([^@]+)@(.+)/) {
"사용자 이름은 $1\n"을 인쇄합니다.
"호스트 이름은 $2\n"을 인쇄합니다.
}
기타 정규식 기능
Perl 정규식은 역참조, 미리보기 및 기타 모든 종류의 복잡한 기능도 지원합니다.
세부. perlrequick, perlretut 및 perlre에서 이에 대한 모든 내용을 읽어보세요.
쓰기 서브 루틴
서브루틴을 작성하는 것은 쉽습니다:
서브 로거 {
내 $logmessage = 교대;
내 $logfile, ">>", "my.log"를 열거나 "my.log를 열 수 없습니다: $!"가 죽습니다.
$logfile $logmessage 인쇄;
}
이제 다른 내장 함수와 마찬가지로 서브루틴을 사용할 수 있습니다.
logger("우리는 로거 서브루틴을 가지고 있습니다!");
그 "교대"는 무엇입니까? 음, 서브루틴에 대한 인수는 우리가 특수한 명령으로 사용할 수 있습니다.
@_라는 배열입니다(자세한 내용은 perlvar 참조). "shift"에 대한 기본 인수
함수는 @_입니다. 따라서 "내 $logmessage = Shift;" 첫 번째 항목을 끕니다.
인수 목록을 $logmessage에 할당합니다.
@_를 다른 방법으로도 조작할 수 있습니다:
내 ($logmessage, $priority) = @_; # 흔한
내 $logmessage = $_[0]; # 흔하지 않고 추악한
서브루틴은 값을 반환할 수도 있습니다.
하위 사각형 {
내 $num = 교대;
내 $결과 = $num * $num;
$결과를 반환합니다.
}
그런 다음 다음과 같이 사용하십시오.
$제곱 = 광장(8);
서브루틴 작성에 대한 자세한 내용은 perlsub를 참조하세요.
OO 펄
OO Perl은 상대적으로 간단하며 어떤 종류의 Perl인지 아는 참조를 사용하여 구현됩니다.
객체는 Perl의 패키지 개념을 기반으로 합니다. 그러나 OO Perl은 대체로 그 이상입니다.
이 문서의 범위. perlootut 및 perlobj를 읽어보세요.
초보 Perl 프로그래머로서 OO Perl의 가장 일반적인 사용은 세 번째 Perl을 사용하는 것입니다.
아래에 설명된 파티 모듈.
사용 펄 모듈
Perl 모듈은 바퀴를 재발명하는 것을 방지하는 데 도움이 되는 다양한 기능을 제공하며 다음을 수행할 수 있습니다.
CPAN에서 다운로드할 수 있습니다( http://www.cpan.org/ ). 인기 있는 모듈은 다음과 같습니다.
Perl 배포판 자체에 포함되어 있습니다.
모듈 범주는 텍스트 조작부터 네트워크 프로토콜, 데이터베이스까지 다양합니다.
그래픽에 통합. CPAN에서는 분류된 모듈 목록도 제공됩니다.
CPAN에서 다운로드한 모듈을 설치하는 방법을 알아보려면 perlmodinstall을 읽어보세요.
특정 모듈을 사용하는 방법을 배우려면 "perldoc 모듈::이름". 일반적으로 당신은
"사용하고 싶다 모듈::이름", 그러면 내보낸 기능이나 OO에 액세스할 수 있습니다.
모듈에 대한 인터페이스입니다.
perlfaq에는 많은 일반적인 작업과 관련된 질문과 답변이 포함되어 있으며 종종 다음을 제공합니다.
사용할 좋은 CPAN 모듈에 대한 제안.
perlmod는 일반적으로 Perl 모듈을 설명합니다. perlmodlib에는 함께 제공된 모듈이 나열되어 있습니다.
Perl 설치.
Perl 모듈을 작성하고 싶은 충동을 느낀다면 perlnewmod가 좋은 조언을 해줄 것입니다.
onworks.net 서비스를 사용하여 온라인으로 Perlintro 사용