세로형
Recent Posts
Recent Comments
Link
04-20 00:01
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

펄 함수(서브루틴) (perl subroutine) 본문

perl

펄 함수(서브루틴) (perl subroutine)

이수진의 블로그 2017. 10. 10. 08:46

 

이제 펄에 대해서 어느정도 지식을 쌓았습니다

 

펄 설치부터 일반 변수(스칼라), 반복, 조건, 배열, 해시 등 많은 것을 알아봤는데요

이번엔 서브루틴을 알아볼까합니다.

서브루틴은 흔히 java나 c에서 쓰이는 함수라고 보시면 됩니다.

펄에선 서브루틴이라고 불립니다~

 

펄 글은 프로그래밍 지식이 조금은 있으신 분들이 보실 것 같은데요

혹시 몰라 함수가 뭐지? 하시는 분들을 위해 간단히 설명하면요!

 

함수는 일종의 기능을 결집해 놓은겁니다.

더하기 기능을 만들어서 필요때 마다 쓰고, 빼기 기능을 만들어서 필요때 마다 쓰고요

이런식이죠 ㅎㅎ

 

그럼 간단한 더하기 서브루틴을 만들어볼까요?

일단은 서브루틴의 간단한 개념을 봅시다.

펄에서 함수(서브루틴)은 sub로 시작합니다.

 

sub 이름{  기능  }  구성으로 진행되죠

간단히 aa라는 서브루틴을 만들고 호출합니다.


1

2

3

4

5

6

7

8

9

10

11

12

aa(3,5,6);

 

 

sub aa{

    $a = shift;

    $b = shift;

    $c = shift || 3;

    print (" a : $a,  b : $b  c : $c \n");

}

 

 

 

cs

 

aa 라는 서부르틴을 만들었습니다.

그리고 aa(3,5,6)을 통해서 호출했습니다

각각의 인자 값은 shift를 통해 하나하나 받게 됩니다!

 

결과는 이렇게 나오죠!

 

이렇게 서브루틴을 간단하게 만들어봤습니다.

 

그러면 더하기 기능을 만들어 볼까요?

1
2
3
4
5
6
7

$result = dd(4,5);

 

sub dd{

    $first = shift;

    $second = shift;

    return $first+$second;

}
cs

이렇게 하면 되겠죠?

 

그럼 return 으로 인해 둘을 더한 값이 $result 스칼라 변수에 들어가게 되고 출력하면요

 

처럼 나오게 됩니다!

 

이제 응용을 해보죠

 

배열과, 해시는 어떻게 받을까?

아래처럼 하면 받을 수 있습니다!

1
2
3
4
5
6
7
@arr = (1,2,3,4,5);
bb(@arr);
 
sub bb{
    my @list = @_;
    print "배열을 받았으 : @list  \n";
}
cs

 

 위는 배열이구요

 

아래는 해시입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%hash = (
"name"=>"lee",
"fname"=>"aaa",
);
 
 
sub cc{
    my (%hash) = @_;
    
    foreach my $key (keys %hash){
        my $value = $hash{$key};
        print " 키는 : $key , 값은  : $value  \n";
    }
}
cs

 

 

 

빨간색은 다른 출력이라서 ㅎㅎ

이렇게 출력이 됩니다!

 

이렇게 펄의 함수(서브루틴)을 알아봤습니다!

 

 

 

반응형
그리드형
Comments