Perl 프로그램에 명령 행 인수를 전달하려면 어떻게해야합니까?
Perl 스크립트를 작성 중입니다. 명령 행 매개 변수를 어떻게 전달할 수 있습니까?
예:
script.pl "string1" "string2"
당신이하고 싶은 일에 달려 있습니다. 두 개의 인수를 입력 파일로 사용하려면 전달하여 <>
내용을 읽는 데 사용할 수 있습니다.
서로 다른 의미가있는 경우 쉽게 사용 GetOpt::Std
하고 GetOpt::Long
처리 할 수 있습니다. GetOpt::Std
단일 문자 스위치 만 지원하며 GetOpt::Long
훨씬 유연합니다. 보낸 사람 GetOpt::Long
:
use Getopt::Long;
my $data = "file.dat";
my $length = 24;
my $verbose;
$result = GetOptions ("length=i" => \$length, # numeric
"file=s" => \$data, # string
"verbose" => \$verbose); # flag
또는 @ARGV
모든 명령 행 인수를 포함하는 특수 변수입니다. $ARGV[0]
첫 번째 (즉 "string1"
, 귀하의 경우)이며 $ARGV[1]
두 번째 주장입니다. 에 액세스하기 위해 특별한 모듈이 필요하지 않습니다 @ARGV
.
생각하는 것처럼 전달하고 스크립트에서 배열에서 가져옵니다 @ARGV
. 이렇게 :
my $numArgs = $#ARGV + 1;
print "thanks, you gave me $numArgs command-line arguments.\n";
foreach my $argnum (0 .. $#ARGV) {
print "$ARGV[$argnum]\n";
}
에서 여기 .
foreach my $arg (@ARGV) {
print $arg, "\n";
}
각 인수를 인쇄합니다.
또는, 더 섹시한 썩은 방법 .....
my ($src, $dest) = @ARGV;
"가정"두 값이 전달됩니다. 추가 코드는 가정이 안전하다는 것을 확인할 수 있습니다.
또 다른 옵션은 다음과 같이 perl -s를 사용하는 것입니다.
#!/usr/bin/perl -s
print "value of -x: $x\n";
print "value of -name: $name\n";
그런 다음 다음과 같이 호출하십시오.
% ./myprog -x -name=Jeff
value of -x: 1
value of -name: Jeff
또는 자세한 내용 은 원본 기사 를 참조하십시오.
변수 @ARGV
목록에 특수 변수 를 지정하여 직접 액세스 할 수 있습니다 . 예를 들어,
( $st, $prod, $ar, $file, $chart, $e, $max, $flag ,$id) = @ARGV;
perl tmp.pl 12 34 5
인수가 읽을 파일 이름 인 경우, 다이아몬드 (<>) 연산자를 사용하여 내용을 확인하십시오.
while (my $line = <>) {
process_line($line);
}
인수가 옵션 / 스위치 인 경우 slavy13.myopenid.com에 이미 표시된대로 GetOpt :: Std 또는 GetOpt :: Long을 사용하십시오.
그들이 다른 것일 가능성이있는 경우, 명시 적으로 또는 다음 shift
명령을 사용하여 @ARGV를 통해 액세스 할 수 있습니다 .
while (my $arg = shift) {
print "Found argument $arg\n";
}
(이 shift
작업을 수행하면 모든 외부에있는 경우에만 작동합니다 sub
.에서 프로그램에 전달 된 sub
인수가 sub
아닌 전달 된 인수 목록을 검색합니다 .)
my $output_file;
if((scalar (@ARGV) == 2) && ($ARGV[0] eq "-i"))
{
$output_file= chomp($ARGV[1]) ;
}
일부 값만 원하면 @ARGV 배열을 사용할 수 있습니다. 그러나 명령 행 옵션 처리를 수행하기 위해 더 강력한 것을 찾고 있다면 Getopt :: Long 을 사용해야합니다 .
참고 URL : https://stackoverflow.com/questions/361752/how-can-i-pass-command-line-arguments-to-a-perl-program
'IT story' 카테고리의 다른 글
오류 : com.android.tools.aapt2.Aapt2Exception : AAPT2 오류 : 자세한 내용은 로그 확인 (0) | 2020.06.25 |
---|---|
먼저 자녀의 부모에서 removeView ()를 호출하십시오. (0) | 2020.06.25 |
GitHub 프로젝트에서 특정 커밋을 얻는 방법 (0) | 2020.06.25 |
예제가 포함 된 JavaScript 모듈 패턴 [닫힘] (0) | 2020.06.24 |
HTML 페이지에서 텍스트를 선택할 수 없게 만드는 방법이 있습니까? (0) | 2020.06.24 |