0

EclipseIDEを搭載した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 に答える