いくつかのarrayrefからの特定のデータを組み合わせる場合、次のコードに従って変換をマッピングしました。
my @output_data = map {
my $ss = $everything->{$_->{username}};
my $distance = $gis->distance ( $_->{lat}, $_->{long} => $ss->{Latitude}, $ss->{Longitude} );
my %data;
@data{qw/username addr1 addr2 city state zip rec_lat rec_long/} = @{$_}{qw/username addr1 addr2 city state zip lat long/};
@data{qw/ss_lat ss_long/} = @{$ss}{qw/Latitude Longitude/};
$data{difference} = sprintf("%.3f", $distance->miles);
\%data;
} @$source;
どちらが機能しますか。これは、初期データセット(個別に行全体を構成するのではなく、私が気にかけているもの)からのいくつかのスライスと、2つの間の計算結果を追加することによって、ハッシュを構築します。終了行を1つの匿名hashrefコンストラクターにきれいに組み合わせる方法はありますか?それとも、このような結果のデータセットを構築することが、それを実行するための好ましい方法でしょうか?