mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, November 01, 2006

Perl,펄] 매개변수(인수) 받아 배열 만들기: Arg To Array


매개 변수를 배열로 만들어줄 필요는 없고, 이미 기본적으로 만들어져 있습니다.

펄 프로그램 실행할 때, 뒤에 붙여 주는 옵션들은

@ARGV

라는 이름의 배열로 항상 존재합니다.



그리고 함수(서브루틴)에 넘겨주는 인수(파라미터)들은

@_

라는 이름으로, 함수 내에서 항상 사용할 수 있습니다. @_ 는 "디폴트 배열"이긴 하지만, 함수 내에서는 그 함수가 받은 인수들의 목록을 가지고 있는 배열이 됩니다.

@_ 에서 shift 로 맨 좌측의 요소를 하나씩 뽑아내서 사용할 수도 있고

@_ 의 첫번째 두번째 요소를 가리키는 변수인

$_[0]
$_[1]
...

등을 사용하여, 하나씩 직접 접근할 수도 있습니다.


매개 변수(인수;Parameter) 배열 다루는 예제


파일명: 0.pl
#!/usr/bin/perl
use strict; use warnings;

################################################
### < 프로그램 실행 옵션 배열 출력 >
=pod
  0.pl IBM MS GOOGLE
  이런 3개의 옵션들을 주어 실행했다면
=cut

  print $_, "\n" foreach(@ARGV);

=pod
  출력 결과:
    IBM
    MS
    GOOGLE
=cut

  print $ARGV[0], "\n"; # 첫번째 옵션 하나만 출력
  # 결과: IBM




################################################
### < 함수(서브루틴) 파라미터 배열 출력 >
  &test(111, 222, "레몬향기혜성", 4545);

sub test {
  print $_, "\n" foreach(@_);
}

=pod
  출력 결과:
    111
    222
    레몬향기혜성
    4545
=cut



################################################
### < 함수 첫번째 파라미터만 추출 >
  &test2("똠방각하", "QQQ", 28737, 3.14);

sub test2 {
  my $s = shift @_;
  print $s, "\n";
}

=pod
  출력 결과:
    똠방각하

=cut


참고로, =pod 와 =cut 은 블록 코멘트입니다.

위의 예제에서 shift 로 "똠방각하"를 뽑아내었기에, 이제 @_ 의 가장 첫번째 요소는 "QQQ"가 됩니다. 다시 shift를 사용하면 이제 "QQQ"가 뽑아져 나옵니다.




tag: perl
Perl | 펄

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top