설정 스크립트에서 인수를 처리하기 위해 Getopt :: Long을 설정하려고합니다.또한 옵션 인 서브 루틴에 Getopt :: Long 옵션을 전달할 수 있습니까?
내 시동기입니다. 내가 좋아하는 그것을 실행하는 경우
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
my $config_file = '';
GetOptions (
'config|c=s' => \$config_file,
'add|a' => \&add_server,
'del|d' => \&del_server,
);
sub add_server {
print "$config_file\n";
}
sub del_server {
# Left blank for now.
}
나는 이런 식으로 뭔가 내 스크립트를 실행할 때 이상한 것은 내가 문제로 실행하고있다가,
./config.pl -a -c config.xml
그것은 -c
옵션을 인쇄,하지만하지 않습니다 이것은
./config.pl -c config.xml -a
그것이해야처럼 작동합니다.
이유가 무엇인지 이해하고 있다고 생각합니다. 주문 실행 권한과 관련이 있습니다.
문제는 어떻게 해결할 수 있습니까? @ARGV와 함께 Getopt :: Long을 사용해야합니까?
궁극적으로 나는 args가 내가 부르고있는 서브 루틴으로 넘어가려고 노력하고있다. 따라서 -a or --add
이라면 -c or --config
의 옵션을 호출 할 때 서브 루틴으로 전달하기를 원합니다.
아이디어가 있으십니까?
내가이 좋네요를 포맷합니다 (A 전화 하나에 게시 전자는 가장 쉽지 않습니다.) –