2013-06-25 38 views
0

我有一個目錄文件,其中包含定義文件測試文件和指令文件的所有路徑。 定義文件看起來像如何使用多維陣列

##Definition file 

Def 1 : "definition 1" 

Def 2 : "definition 2" 

Def 3 : "definition 3" 

每個指令文件中包含的,多指令

##Instruction File 1 
{ 

Instruction 1 

run Def1 

sleep 

run def2 

} 
{ 

Instruction 2 

run Def 3 

sleep 

run Def1 

} 

同樣多指令文件指令集設置

Test File looks like 
{ 

run Instruction file1 Instruction 2 

sleep 5 

} 

任何人都可以指導我如何做到這一點。像如何運行指令文件中的特定指令

我可以使用多維數組來執行它嗎?如何在多維數組中存儲命令,指令文件和指令?

+0

您應該使用的代碼格式設置選項[編輯](http://stackoverflow.com/pos ts/17296929 /編輯)您的問題,以便代碼可讀。 – TLP

+0

對不起。 – user2486369

回答

0

你可以使用散列參考和數組引用。

哈希可以鍵入目標,然後數組引用可以存儲指令數組。

要打開一個文件進行讀取 「<」

open FILE, "<", "filename.txt" or die $!

要得到它的所有行:

my @lines = <FILE>

從這裏剛剛分手了基於代碼根據你的指示,也許使用正則表達式。

foreach my $line (@lines) { 
    #do stuff here for the instructions 
    #maybe a regex 
} 

然後遍歷和處理每一個..

爲您的測試文件的問題,你可以保存它關聯方式。

所以你必須測試文件「命令組」

每個元素都可以存儲3個相關的值

$test[0] = { command => $command , filename => $filename, instruction => $instruction };

從這裏您可以訪問元素如哈希的數組:

$test[0]->{command}

+0

你能幫助我如何閱讀和存儲測試文件使用數組參考 – user2486369

+0

我添加了一些信息,看看是否有幫助,我可以嘗試解釋更多的不同部分,但我仍然不是100%你是什麼試圖去做。 –

+0

謝謝,我試圖讀取這些文件。我的主要問題是如何讀取和存儲測試文件。就像指令文件一樣,我可以將數組[0]中的命令(ie.run,sleep)和數組[1]中的值(即.Def1,Def2,5等)存儲起來。我不確定它是如何工作的測試文件,因爲它有三個參數命令,文件名(指令文件1)和指令(指令2) – user2486369