2013-11-25 3 views
0

저는 Perl을 처음 사용하며 현재 명령 줄 인수를 perl 스크립트에 전달하고 ARGS [0]를 통해 검색합니다.키워드가있는 펄의 명령 줄 인수

perl <perlscript.pl> windows IE. 

위의 값에 키워드를 지정하고 싶습니다.

perl <perlscript.pl> -os windows -browser IE -instance 2. 

인스턴스가있을 수도 있고 없을 수도 있습니다. 내 펄 스크립트에서이 문제를 어떻게 처리 할까?

답변

6

사용 Getopt::Long 및 해시에 옵션을 저장 :

명령 줄 인수를 처리하기위한 여러 모듈이 있습니다
use warnings; 
use strict; 
use Getopt::Long qw(GetOptions); 

my %opt; 
GetOptions(\%opt, qw(
    os=s 
    browser=s 
    instance=i 
)) or die; 
3

: Getopt::DeclareGetopt::Long 아마 가장 인기 있습니다. 제 작품에서 우리는 주로 Getopt :: Declare Declare를 사용합니다. 예를 들어, @toolic이 Getopt :: Long을 다루었을 때부터 그 예가 너무 좋았습니다.

my $ARGS = Getopt::Declare->new(
    join("\n", 
     "[strict]", 
     "-os  <string> The operating system [required]", 
     "-browser <string> The web browser  [required]", 
     "-instance <int> The instance" 
    ) 
) or die; 

이제 $ARGS 해시를 통해 parmeters에 액세스 할 수 있습니다. 즉 $ARGS->{-os}

[strict]은 명령어 라인 을 정확히 구문 분석하여 오류가 있다고보고합니다 (예 :).

[required] 옵션 선언 다음에 필드가 있어야 함을 의미합니다. 참고로 인스턴스를 벗어났습니다.