如何使用多维数组

时间:2013-06-25 12:08:22

标签: arrays perl multidimensional-array

我有一个目录文件,其中包含定义文件测试文件和指令文件的所有路径。 定义文件看起来像

##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

}

任何人都可以指导我如何做到这一点。就像如何从指令文件中运行特定指令一样

我可以使用多维数组来执行此操作,例如在多维数组中存储命令,指令文件和指令吗?

1 个答案:

答案 0 :(得分:0)

您可以使用散列引用和数组引用。

哈希可以键入目标,然后数组引用可以存储指令数组。

$ref->{'key'} = \@array

打开文件以阅读“<”

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}