Perl6 : 명령 행에서 혼합 매개 변수를 어떻게 읽습니까?


9

검열 / 편집에 관한 상담을받지 않아서 게시물을 삭제하고 있습니다.


예를 들어, 참조 것은, Getopt :: 롱
HAKON Hægland

안녕 @ 토드. 나는 당신이 다른 사람들의 편집에 화가 났음을 알 수 있습니다. 아마도 당신이 '감사'편집하는 것과 같이 편집관련하여 SO어떻게 작동하는지 잘 모르기 때문일 것 입니다. 그러나 귀하의 질문에 대한 귀하의 편집은 귀하에게 답변 한 사람들과 SO를 사용하는 다른 사람들의 시간 / 노력을 평가 절하하기 때문에 다른 사람들에게 화를냅니다. 귀하의 질문을 원래대로 되돌려 놓을 수 있도록 축복 해주십시오 .
raiph

답변:


9

다음은 Getopt :: Long을 사용한 예입니다 .

use v6;
use Getopt::Long;

my %opt = help => False, 'r=s' => "", 'q=s' => "", 'w=s' => "";
my %options = get-options(%opt).hash;
say %options;
say @*ARGS;

예제 실행 :

$ p.p6  -w xyz -q def -r abc hello
{help => False, q => def, r => abc, w => xyz}
[hello]

@Todd 옵션으로 처리 된 모든 인수는에서 제거 @*ARGS됩니다 get-options(). 따라서 옵션이 아닌 인수는 @*ARGS나중에 남아 있습니다 . 업데이트 된 답변을 참조하십시오
HAKON Hægland에게

help기본값은 0으로 설정 됩니다. help => False도움말 옵션은 일반적으로 도움말 메시지를 표시하는 데 사용되므로 부울을 사용하는 것이 좋습니다 . help부울 과 같은 답변을 편집했습니다 .
Håkon Hægland

8

MAIN하위를 사용하십시오 .

#!/usr/bin/env raku

use v6;

sub MAIN(:$these ="These", :$are="Are", :$params="Params") {
    say "$these $are $params";
}

이 매개 변수를 임의의 순서로 입력 할 수 있습니다.

./command-line.p6 --are=well --these=those
those well Params

또한 추가 매개 변수를 포착하여 실제 매개 변수를 표시합니다.

./command-line.p6 --are=well --these=those --not=this_one
Usage:
  ./command-line.p6 [--these=<Any>] [--are=<Any>] [--params=<Any>]

단일 대시가있는 매개 변수에만 관심이있는 경우 Hakon이 표시 한대로 GetOpt :: Long이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.