我在带有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'