Tuesday, August 22, 2006
Perl] 펄 함수의 $_[0], $_[1], shift @_ 의 의미는? 서브루틴 파라미터(인수)받기, Subroutine Parameter
펄 함수의 파라미터를 받아서 처리하는 부분입니다. 함수(서브루틴)에 인수(파라미터)를 주어 호출하면, 그 인수들이 든 배열이 그 함수 내의 @_ 여기에 자동으로 들어갑니다. @_ 여기에서 파라미터를 뽑아서 사용하면 됩니다.
함수에 주어진 첫번째 파라미터는 $_[0] 입니다. $_[1] 은 두 번째 파라미터입니다. $_[2] 는 세 번째이고...
&foo(123, "ABC"); 라고 했을 때, 123 은 $_[0] 이 되고, ABC 는 $_[1] 이 됩니다.
num_test()라는 함수에 지금 2와 3 이라는 두 개의 파라미터가 주어져 있습니다. 함수의 본체는, 주어진 2개의 파라미터를 플러스하여 출력하는 것입니다. 2+3=5 이기에, 5를 출력합니다.
&bar(1.32, "똠방각하"); 라는 함수에서 볼 수 있듯이, 함수 파라미터를 @_ 에서 shift 로 하나씩 뽑아 $_ 에 저장할 수도 있습니다. 작대기에서 곶감을 하나씩 빼먹는 것과 비슷합니다.
함수에 주어진 첫번째 파라미터는 $_[0] 입니다. $_[1] 은 두 번째 파라미터입니다. $_[2] 는 세 번째이고...
#!/usr/bin/perl
use strict; use warnings;
&foo(123, "ABC");
&num_test(2, 3);
&bar(1.32, "똠방각하");
sub foo {
print "첫 번째 파라미터: ", $_[0], "\n";
print "두 번째 파라미터: ", $_[1], "\n";
}
sub num_test {
print $_[0] + $_[1], "\n";
}
sub bar {
$_ = shift @_;
print "첫 번째 파라미터: ", $_, "\n";
$_ = shift @_;
print "두 번째 파라미터: ", $_, "\n";
}
use strict; use warnings;
&foo(123, "ABC");
&num_test(2, 3);
&bar(1.32, "똠방각하");
sub foo {
print "첫 번째 파라미터: ", $_[0], "\n";
print "두 번째 파라미터: ", $_[1], "\n";
}
sub num_test {
print $_[0] + $_[1], "\n";
}
sub bar {
$_ = shift @_;
print "첫 번째 파라미터: ", $_, "\n";
$_ = shift @_;
print "두 번째 파라미터: ", $_, "\n";
}
위의 예제 설명
&foo(123, "ABC"); 라고 했을 때, 123 은 $_[0] 이 되고, ABC 는 $_[1] 이 됩니다.
num_test()라는 함수에 지금 2와 3 이라는 두 개의 파라미터가 주어져 있습니다. 함수의 본체는, 주어진 2개의 파라미터를 플러스하여 출력하는 것입니다. 2+3=5 이기에, 5를 출력합니다.
&bar(1.32, "똠방각하"); 라는 함수에서 볼 수 있듯이, 함수 파라미터를 @_ 에서 shift 로 하나씩 뽑아 $_ 에 저장할 수도 있습니다. 작대기에서 곶감을 하나씩 빼먹는 것과 비슷합니다.
tag: perl
Perl | 펄
<< Home