0

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

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

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

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

4

1 回答 1

1

变量通常只存储在内存中,要在 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' 
于 2012-09-07T04:20:14.130 回答