構造体
ハッシュがあるのであまり必要ないのですが、Class::StructでC言語の構造体のようなものを使うことができます。
ハッシュの場合キーを間違えても間違えたことに気付きにくいですが、Class::Structを使うとエラーになるのですぐに間違いに気付くことができます。
use Class::Struct; struct Person => { name => '$', phone => '@', }; my $taro = Person->new(); $taro->name('Taro'); $taro->phone(0, '03-0000-0000'); $taro->phone(1, '090-0000-0000'); printf "(%s, %s, %s)\n", $taro->name, $taro->phone(0), $taro->phone(1);上記では配列の代入や値の取得を一つずつやっていますが、
@{$taro->phone} = ('03-0000-0000', '090-0000-0000');のようにまとめて代入することができますし、
@phones = @{$taro->phone};このようにして値をまとめて取得することもできます。
structのところで'%'を指定することでハッシュを使うこともできます。