2012-08-22 58 views
5
#!/usr/bin/perl -sw 
use strict; 
use warnings; 
use Getopt::Long; 

my $remote = 0; 
my $test = 0; 
GetOptions ('remote' => \$remote, 'test' => \$test); 
print "$remote:$test\n"; 

perl的test.pl --remote --test無法解析命令行選項長

上述打印 「0:0」。我是Perl的新手,所以我一直無法確定爲什麼這不起作用。

我也跑了http://perldoc.perl.org/Getopt/Long.html#Simple-options「簡單的選項」部分,也沒有產生任何東西。

+0

@ raina77ow - 我確實有他們,只是沒有在這個崗位包括。 –

回答

11

我相信你的電話線上包含的-s命令行選項正在咬你。根據perlrun documentation,所述-s命令行選項:

使初步開關解析程序名之後的命令行上的開關而在此之前的任何文件名參數(或之前的參數 - )。

如果您刪除該選項,則應按預期工作。因爲您已經在使用use warnings指令(use warnings指令功能更強大,本質上取代-w選件),所以我還建議刪除-w

所以,長話短說,使你的第一行:

#!/usr/bin/perl 
+0

謝謝,我早些時候使用它作爲簡短的命令,但是想要替換那些(因爲無論如何我都用完整的單詞)。 –