2013-02-01 12 views
0

我经常使用perl -s选项将命令行输入到我的脚本中。现在,我想使用PAR::packer将其中一些转换为exe文件。有没有办法使用这种风格的命令行输入与exe文件?使用Perl PAR:Packer exe -s命令行输入

例如,我会运行一个Perl脚本为:

perl my_script.pl -name="Robin" -date=20130201 

在此脚本中,变量$name,并$date将与给定值进行初始化。我可以使用my_script创建的exe文件(使用PAR::packer)来模拟此行为吗?

+5

我不知道,但我强烈建议改用'Getopt :: Long'。 – melpomene

+1

我第二次Getopt :: Long评论。 “-s”标志最好是最基本的。 –

+0

同意 - 我已经切换到使用Getopt,一切正常。感谢大家。 – ninjaman

回答

0

您可以在脚本的开头添加类似的东西:

BEGIN{ 
    my %args = map {s/^-{0,2}//; split /[=:]/} @ARGV; 
    no strict 'refs'; 
    $$_ = $args{$_} for keys %args; 
    @ARGV =(); 
} 

或者把它放在一个包你“用”在脚本的开始。

编辑:改变本地=>我的,简化地图和添加没有严格的'裁判'作为sugested。

+0

你不想这样做。 ①做'我的%args = ...'。 “本地”在这里似乎很奇怪。 ②map +(do {...}),...'⇔'map do {...},...'⇔'map {...} ...'! ③这需要'没有严格的'refs''。 ④这是邪恶的,但是'perl -Mstrict -E'@ main :: {qw/x y z /} = map \ $ _,(1..3);对我们的($ x,$ y,$ z)说''也可以,即使在严格的裁判下也是如此:)另外,没有机会这被误认为是正规的参考... – amon

+0

谢谢指出! – xlat