CSVとかTAB区切りファイルとかから、アレイハッシュを作るチップ


一行目がキーで、それ以降がデータのファイルを想定!
このコードがかっこいい。id:hideden に教えてもらった。 Thanks!

 @row{ @fields } = split("\t" , $line );

サンプル

use strict;
use warnings;
use Data::Dumper;

my $tab = "\t";
my $DATA =<<__TAB__;
id${tab}message${tab}status
1${tab}test1${tab}disable
2${tab}test2${tab}enable
3${tab}test3${tab}disable
__TAB__

my $is_first_line = 1;
my @fields = ();
my @data = split("\n" , $DATA );
my @nice_format_data = ();
for  my $line ( @data ) {
    chomp $line;

    if( $is_first_line ) {
        @fields = split("\t" , $line );
        $is_first_line=0;
    }

    # これ!。フィールドの配列のデータをハッシュにまとめて入れれる!
    my %row;
    @row{ @fields } = split("\t" , $line );
    push @nice_format_data , \%row ;

}

warn Dumper \@nice_format_data;