my %hash;
while (<>) {
  chomp;
  my ($key, @fields) = split /\t/;
  $hash{$key} = \@fields;
}

これだとハッシュの値には配列リファレンスが入ってスマートかつ高速。
ハッシュ格納前提だとアロケートサイズも最小限、だと思う。ヒネりはないけどなあ。w