0

リストからハッシュを初期化できます。

my %hash = (1..10);
my %hash2 = split /[\n=]/;

一時変数を使用するよりも、新しいキー/値のリストをハッシュに追加するより良い (より簡単な) 方法はありますか?

while (<>) {
    my ($k, $v) = split /=/, $_, 2;
    $hash{$k} = $v;
}
4

2 に答える 2

0

間違ってるかもしれないけど次は

use 5.014;
use warnings;
use Data::Dumper;

#create a hash
my %hash = map { "oldvar" . $_ => "oldval" . $_ } (1..3);

#add to the hash
%hash = (%hash, map {split /[=\n]/}  <DATA>);
say Dumper \%hash;

__DATA__
var1=val1
var2=val2
var3=val3

版画

$VAR1 = {
      'oldvar1' => 'oldval1',
      'oldvar2' => 'oldval2',
      'var1' => 'val1',
      'var3' => 'val3',
      'oldvar3' => 'oldval3',
      'var2' => 'val2'
    };
于 2014-07-17T15:56:37.940 に答える