2010-10-12 64 views

回答

2

我假設你是在談論一個Perl數組,這被稱爲在Tcl的列表。從Perl的:

system 'myscript.exp', @ary; 

那麼你期待的腳本將有:

set list_of_arguments $argv 
1

格倫,不知是否Saranyya會明白你的答案。我會提供一些可以幫助他的背景。

首先,Saranyya,請注意,您可以選擇Perl和Expect的各種不同組合。如果現有的Expect腳本做了一些您想要增強的功能,那麼您可以簡單地在Expect中編寫功能,而不是Perl; Expect是一種完全通用的語言,基本上可以完成Perl所做的一切。相反,如果您有一個需要預期功能的Perl應用程序,那麼幾乎可以肯定地將您需要的所有東西寫入 Perl,帶有Expect.pm;沒有必要構建一個單獨的期望過程。

最後,做你看起來描述的內容也是合理的,以及Glenn認爲你在做什麼:從Perl的調用獨立的期望過程。如果這樣做,如果真像格倫草圖,你的Perl程序包括

system 'myscript.exp', @ary; 

那麼你期待的腳本訪問,通過$ :: argv的價值,這是一個列表傳遞給它的參數。我將稍微詳細說明這個例子:假設你通過系統傳遞一個主機名列表;那麼在期待你可能有用地具有

set list_of_hostnames $::argv 
foreach hostname $list_of_hostnames { 
    do_something_valuable $hostname 
} 

一個過程的接口,另一相通,而不是變量。當信息到達Expect時,它「不知道」它是Perl中的一個數組(例如)。你使用相同的技術來取消引用$ :: argv,但是你在Perl方面包裝了東西。

+0

我改變了主意。經過進一步的思考,我決定格倫的回答可能與我的要求相符。不過,也許後者作爲前者的補充是有用的。 – 2010-10-12 12:26:45

相關問題