如何在另一个perl一行程序中使用我的程序中定义的哈希值



我在带有Eclipse IDE的Windows上使用Perl。我已经做的是,我解析了一个文本文件,并将我需要的内容提取到%hash中。最后,我的%hash "Key"包含函数名称,%hash "Value"包含相应的函数定义。

现在,我的问题是,我可以在PERL单行中使用我的%hash "Values"吗(我在同一程序的末尾运行它)?

如果是,那么我尝试了以下方法,但似乎不起作用:

perl -pi.bak -e "if(! /#/){s/ PERFORM ([\w-]+).?/qq(# PERFORM $1n). $hash{$1}/ge}" TestFinal.txt

变量通常只存储在内存中,为了在Perl的不同实例之间保留一个变量,您需要某种"持久性"。

您可以使用Data::Dumper、Storable、DBM::Deep或任何其他多种机制。

编辑:

脚本:

#!/usr/bin/env perl
use strict;
use warnings;
# this module can dump a variable in "do"-able format
use Data::Dumper;
my %hash = (
  john => 'doe',
  tarzan => 'jane',
);
open my $fh, '>', 'data' or die "cannot open data file";
print $fh Dumper %hash;

一个衬垫:

perl -e '%hash = do "data" or die "cannot load data"; # do stuff with %hash' 

最新更新