logo

Perl 명령줄 인수

명령줄 인수는 다른 언어와 동일한 방식으로 Perl 프로그램으로 전송됩니다. @ARGV 배열은 명령줄 인수를 보유합니다. 'use strict'를 사용하더라도 변수를 사용할 필요는 없습니다. 기본적으로 이 변수는 항상 존재하며 명령줄의 값은 자동으로 이 변수 ​​내에 배치됩니다. 스크립트의 명령줄 인수에 액세스하려면 @ARGV 배열에서 읽기만 하면 됩니다.

Perl에서는 @ARGV 배열을 파일 이름으로 사용할 수 있습니다. $ARGV에는 에서 읽을 때 현재 파일의 이름이 포함됩니다.

@ARGV 배열 요소

@ARGV 배열은 일반 배열과 동일하게 작동합니다. 첫 번째 인수는 $ARGV[0], 두 번째 $ARGV[1] 등입니다.


Perl 명령줄 인수 예

명령줄 인수를 인쇄하는 간단한 예를 살펴보겠습니다. 이 예에서는 명령줄의 인수로 사용자 이름을 사용하여 환영 메시지를 인쇄합니다. 사용자의 이름과 성으로 두 개의 명령줄 인수가 필요합니다.

1 단계 스크립트 만들기 환영합니다.pl 귀하의 시스템에서.

 #!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name.
'; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint.
'; 

위 스크립트에서는 먼저 두 개의 명령줄 인수가 제공되었는지 여부를 확인합니다. 그렇지 않으면 잘못된 입력 오류가 발생합니다. 그렇다면 해당 인수를 각각 $ARGV[0] 및 $ARGV[1]로 처리합니다.

2 단계 콘솔에서 다음과 같이 스크립트를 실행하세요. Perl Welcome.pl 크리스찬 그레이

참고: 이 명령을 실행하기 전에 Welcome.pl 스크립트가 포함된 디렉터리에 있는지 확인하세요.

Perl 명령줄 인수 1

이는 콘솔에서 얻을 수 있는 출력입니다.

2 단계 콘솔에서 다음과 같이 스크립트를 실행하세요. 펄 Welcome.pl 기독교인

여기서는 명령줄에서 하나의 인수만 전달합니다.

Perl 명령줄 인수 2

출력에서 하나의 인수 전달에 대한 잘못된 입력 메시지를 볼 수 있습니다.


루프를 사용한 Perl 명령줄 인수 예

이제 루프를 실행하여 명령줄 인수를 인쇄하겠습니다. 이 예에서는 원하는 만큼 인수를 입력할 수 있습니다.

1 단계 스크립트 만들기 loop.pl 귀하의 시스템에서.

 #!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args
'; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument]
'; } 

2 단계 콘솔에서 다음과 같이 스크립트를 실행하세요. 펄 루프.pl a b c d e f g h

Perl 명령줄 인수 3

위 출력을 보면 명령줄에 전달된 총 인수도 표시됩니다. 여기서는 8개의 인수를 전달했습니다.


Perl Getopt::긴

간단한 명령줄 옵션은 ?s 옵션을 사용하여 수행됩니다. 복잡한 명령줄 옵션은 Getopt::Std 및 Getopt::Long을 사용하여 수행됩니다.

Getopt는 다음을 의미합니다. GetOptions . 이는 우리가 제공한 구성에 따라 @ARGV의 콘텐츠를 처리합니다. 처리에 따라 true 또는 false 값을 반환합니다.

예:

이 예에서는 명령줄에서 사용자의 나이를 얻습니다.

 use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME
'; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; } 

변수를 선언했습니다 $x 삽입된 값을 저장합니다. --에서 표준 콘솔에서. 그만큼 보낸 사람=s 라는 명령줄 매개변수를 선언합니다. --에서 그 뒤에 문자열이 있습니다. 변수 $x에 추가로 매핑됩니다. 백슬래시 () 변수에 대한 참조를 전달한다는 의미입니다.

이 스크립트는 다음으로 전환됩니다. 그만큼 매개변수 이름처럼 보이고 (-) 하지만 이 스크립트에서는 선언되지 않았습니다.

이제 이 프로그램을 실행해보겠습니다.

산출:

Perl 명령줄 인수 4

출력을 살펴보세요. 콘솔에 age를 입력한 후 위의 출력을 얻었습니다.