構造体


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

関連項目

なし