如何在PERL中定义组中的项目列表

时间:2015-02-28 05:23:18

标签: perl shell unix scripting makefile

我有一个包含多个变量的列表和一个对这些变量进行操作的perl脚本。

列表是这样的:: A组: 变量1 var 2 等等

B组: 变量1 var 2 等等

我的perl脚本对这些变量进行操作,具体取决于我想要的组。

有没有办法可以使用一些perl功能将所有组(和变量)放在一个文件中,这样我所需要的就是将组名传递给脚本。该脚本将自动从预定义列表中选择该组的相关变量并对其进行操作(类似于我们使用makefile)。

即使是shell脚本也没关系。

1 个答案:

答案 0 :(得分:0)

您正在寻找的功能称为数据封送,就像Perl所做的一样,有多种方法可以实现。三种最常用的数据序列化方法(与数据封送相反 - 以保留其结构的方式将数据写入文件)是YAML,Data :: Dumper和JSON。

Data :: Dumper将数据写为本机perl代码:上面的示例可能如下所示:

$VAR1 = (
    { group1 => [ 'abc', 'def' ] },
    { group2 => [ 'red', 'blue' ] }
);

YAML和JSON是表兄弟...他们使用不同的文本格式来表示数组和哈希。 YAML通常用于配置文件,而JSON由javascript发出,更有可能在用于在Web上发送和接收数据的perl脚本中找到。

Data :: Dumper是Perl标准库的一部分。可以在CPAN上找到YAML和JSON库。

Data :: Dumper的输出可以直接用作Perl代码,YAML和JSON库中都有功能,可以将数据直接加载到Perl数据结构中。