如何在Perl脚本中填充散列(已在单独的文件中定义)并对其执行必要的操作?

如何在Perl脚本中填充散列(已在单独的文件中定义)并对其执行必要的操作?,perl,hash,populate,Perl,Hash,Populate,如何在Perl脚本中填充散列(已在单独的文件中定义)并对其执行必要的操作 例如: file1.pl--包含定义的哈希 file2.pl——应该从file1.pl填充哈希的用户定义代码 my %tgs = ( 'articles' => { 'vim' => '20 awesome articles posted', 'awk' => '9 awesome articles posted', 'sed' => '10

如何在Perl脚本中填充散列(已在单独的文件中定义)并对其执行必要的操作

例如:

file1.pl--包含定义的哈希

file2.pl——应该从file1.pl填充哈希的用户定义代码

my %tgs = (
    'articles' =>  {
        'vim' => '20 awesome articles posted',
        'awk' => '9 awesome articles posted',
        'sed' => '10 awesome articles posted'
    },

    'ebooks' =>  {
        'linux 101'   => 'Practical Examples to Build a Strong Foundation in Linux',
        'nagios core' => 'Monitor Everything, Be Proactive, and Sleep Well'
    },
);

@吉布隆实际上已经回答了你的问题。
因此,我只向您展示了您可能更感兴趣的代码。
填充普通哈希的方法与填充“哈希上的哈希”的方法相同。
我使用Data::Dumper直接显示哈希结构,您可以选择自己的方式来知道最终哈希包含什么

use strict;
use Data::Dumper qw(Dumper);
do 'file1.def'; # evaluate file1

# add new sub key and value to 'hash of hash'
$file1::tgs{'articles'}{'emacs'} = '21 awesome articles posted';

# create a completely new pair
$file1::tgs{'new_key'}{'new_sub_key'} = 'new_value';

# see the result
print Dumper (\%file1::tgs);

查看@Gibron-感谢链接。我会看一看。@Gibron-在你提到的上面的链接中。。。对%ProjectData::DATA执行某些操作。。。那么上面的意思是什么呢?这是否意味着我可以访问在另一个文件中定义的散列的任何键->值对,并按照我的意愿打印它们?上述方法适用于简单的散列。如何对“hash oh hashes”执行相同的操作?现在假设我想从file2.def或file3.def访问哈希,依此类推。。如何使脚本成为通用脚本,使其自动从包含的文件中捕获哈希名称,并自动访问其键->值对,即
$file1::“在这里,我希望它根据包含的文件采用哈希名称”