我正在编写Perl脚本,我需要执行以下操作:
有一个文件,称之为machine_specs
整个文件包含一个Perl哈希定义,以及相关的键值对,如('word_length' => 64)
和('os_ver' => 'RHEL Server release 5.8')
我想将此变量加载到我的脚本中,以便我可以自然地访问这些字段。
我知道我可以grep FIELD machine_specs
并解析输出以获取信息,也许这就是我应该做的。但现在我只想知道如何加载变量定义。我不确定use
是否合适,因为这些文件不是真正的模块;它们只是一个字典的文本。
不失一般性,我们可以假装整个文件是:%report = ('bits' => 64, 'os_ver' => 'RHEL Server release 5.8', 'os_arch' => 'x86_64');
答案 0 :(得分:5)
如果文件包含有效的perl,您可以使用require将变量拉入脚本。
machine_specs
内容:
%report = (
'bits' => 64,
'os_ver' => "RHEL Server release 5.8",
'os_arch' => "x86_64",
)
示例脚本内容:
#!/usr/bin/perl
use strict;
use warnings;
our %report;
require "machine_specs";
print "Got $report{bits} bits!\n"; # Got 64 bits!
答案 1 :(得分:0)
这样做你需要做什么吗?
my %report;
eval <DATA>;
print Dumper(\%report);
__DATA__
%report = ('bits' => 64, 'os_ver' => 'RHEL Server release 5.8', 'os_arch' => 'x86_64');