ハッシュ内配列にpushする

いや、分かるのだよ?使うのだよ?でも気持ち悪い、ニヤニヤしてしまう。

#リファレンスメモ
#配列
#無名配列を格納(リファレンスの作成)
my $arr = [];
#無名配列にpush
push @{$arr},(1,2,3);
#参照値を出力
print $arr,"\t";
print \@{$arr},"\n";#\でリファレンス値。一旦デリファレンスしてもう一度リファレンスに
#無名配列の個別要素を出力
print ${$arr}[0],"\t";#書き方1
print $$arr[1],"\t";#書き方2
print $arr->[2],"\n";#矢印構文
#ハッシュ
#無名ハッシュを作る。中身はkeyキーに無名配列
my $hash = {key => []};
#$hashをデリファレンスして無名ハッシュの参照値を出力
print %{$hash},"\t";
print %$hash,"\n";#コレでもOK。僕には見にくい
#さらにkeyキーの先(無名配列が入ってるはず)の参照値を出力
print ${$hash}{key},"\t";#書き方1
print $$hash{key},"\t";#書き方2
print $hash->{key},"\n";#矢印構文
#keyの無名配列にpushする
push @{${$hash}{key}},(1,2);
push @{$$hash{key2}},(3,4);
push @{$hash->{key3}},(5,6);
#key2に格納されている要素を個別に出力してみる
print ${${$hash}{key}}[0],"\t";
print ${$hash->{key}}[1],"\t";
#print $$$hash{key2}[0],"\t";#なんだか怒られます
print $hash->{key2}->[1],"\n";
#hashの内容を順番に出力してみる
for my $hashkey (sort keys %{$hash}){
	for my $arrayvalue (@{$hash->{$hashkey}}){
		print $arrayvalue,"\t";
	}
	print "\n";
}
print "ちょっと気持ち悪いな\n";

使う文には->がわかりやすい。他の構文は読みにくいがなれねばいけないなぁ
型グロブについて今はよく分からん