my @string = qw{aa,33 bb,44 cc,55 aa,xx bb,44 cc,55 aa,yy bb,44 cc,55};
という配列の各要素をカンマ区切りでハッシュkeyとvalueに分け、かつ特定のkeyでぐぎった2次元配列にしたいです。
具体的には上記の配列を

$list[0]{aa} = 33;
$list[0]{bb} = 44;
$list[0]{cc} = 55;
$list[1]{aa} = xx;
$list[1]{bb} = bb;
$list[1]{cc} = 44;
$list[2]{aa} = yy;
$list[2]{bb} = 44;
$list[2]{cc} = 55;

というような2次元配列にしたいので以下のように書いたのですが、
最後のprintでは何も表示されませんでした。何がいけなかったのでしょうか?

my @list;
my %data;
my @string = qw{aa,33 bb,44 cc,55 aa,xx bb,44 cc,55 aa,yy bb,44 cc,55};
my $n = 0;

foreach my $item (@string) {
my ($key, $value) = split qq{,}, $item;
$data{$key} = $value;
if($key eq qq{cc}) {
$list[$n] = %data; %data=(); $n++;
}
}

print $list[0]{aa};