2012-09-06 84 views
-1

如何從另一個傳遞參數運行perl腳本?如何從其他傳遞參數運行perl腳本?

我正嘗試使用在找不到的互聯網文章中找到的解決方案。
它是這樣的:

do 'script.cgi param1 param2'; 

而在其他腳本我用簡單的移位來獲得這些參數:

#Parameters 
my $param1= shift; 
my $param2= shift; 

我看到使用帶有ARGS系統的人,但它是更好真的?
如果不是,我該如何解決'做EXPR'的解決方案?
在此先感謝。

回答

1

哦,好吧,我解決了這樣做的:

{local @ARGV = (@my_args); do $script;} 

它的工作原理。如果有人有任何更好的建議,隨時告訴他們給我。
與此同時我正在使用此解決方案。

0

其實,有兩個更好的辦法我能想到的:

system($script, @my_args); 

my $cmd = $script . ' ' . join(' ', @my_args); 
my $return = `$cmd`; 

這兩種解決方案傳遞參數的@my_argssystem()調用返回執行程序的退出代碼,而反引號解決方案(``)返回輸出以供稍後解析。

+0

如果任何參數中有空格,使用反引號的解決方案將失敗 – Borodin

+0

您能解釋一下嗎? 我的解決方案與做或系統? – DkSw

+0

我總是比較喜歡'system()',但是YMMV。 – mpe

相關問題