2010-06-03 16 views
2

我想處理一個功能,這在我看來似乎很自然,而且我不知道如何使用Getopt perl軟件包(無論Std ot Long)如何處理它。如何使用Getopt處理主要選項

我想是這樣的:

./perlscript <main option> [some options like -h or --output-file some_name] 

選項將與處理 - 或 - ,但我希望能夠讓用戶給我沒有破折號的主要和必要的選擇。

Getopt能夠做到這一點,還是我必須手工處理?

回答

8

聽起來好像你在談論非選項 - 基本的命令行參數。他們可以通過@ARGV訪問。該Getopt模塊將通過你的腳本通過定期的參數不受干擾:

use strict; 
use warnings; 
use Getopt::Long; 

GetOptions (
    'foo' => \my $foo, 
    'bar=s' => \my $bar, 
); 

my @main_args = @ARGV; 

# For example: perl script.pl --foo --bar XXX 1 2 3 
# Produces: foo=1 bar=XXX main_args=1 2 3 
print "foo=$foo bar=$bar [email protected]_args\n"; 
3

如果你想擁有它沒有-寫的,這也是不可選的(如你specifiy),然後通過任何推理是不選項,但是參數。你應該只需通過

my $mainarg = shift 

讀自己,然後讓的Getopt做它的事。 (之後您可能需要檢查$#ARGV以驗證主要參數是否實際給出。)

+0

那是我親手處理它的意思。 – 2010-06-03 13:45:05