2013년 9월 10일 화요일

Perl 제대로 배우기 - 8장 (Function)

8. Function
사용자 함수의 정의
sub subname{
statement_1;
statement_2;
}
서브 루틴의 정의 전역적(global) 하다. 동일한 이름의 서브루틴 정의가 두개 있으면 나중의 것이 이전의 것을 덮어쓴다.

인수
인수는 자동으로 @_ 라는 특수 변수에 할당된다.
sub add{
$sum = 0;
foreach $_ (@_){
$sum += $_;
}
return $sum;
}

함수내의 사설 변수
my 연산자를 사용한다.
sub add{
my($sum); #$sum 지역 변수를 생성함.
}
local을 이용한 준사설(semiprivate) 변수
local 함수를 사용하여 준 변수를 만들수 있다?
local 함수를 사용하게 되면 임시적(지정된 함수)으로만 지역 된수되고 벗어나면 전역변수처럼 동작하게 된다.

파일 레벨 my() 변수
use strict; :: perl 프라그마(pragma) , 반드시 변수를 선언하고 사용해야 하는 제약이 발생한다.
변수 선언을 강제함으로써 생기는 잇점은

  • 좀더 빨리 실행됨.
  • 타이상 오류를 빨리 잡을 수 있다.