構造体
ハッシュがあるのであまり必要ないのですが、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のところで'%'を指定することでハッシュを使うこともできます。
