13.5 構造体としてのクラスの使用方法

  • 標準モジュールのClass::Structのstructを使用して、Cプログラミング言語の構造体に類似したデータ構造を宣言する。
use Class::Struct;  # 構造体専用のモジュールをロードする

struct Person => {   # "Person"の定義を行う
  name => '$',   # nameフィールドはスカラ
  age => '$',   # ageフィールドはスカラ
  peers => '@',   # peersフィールドは配列(リファレンス)
};

my $p = Persion->new();   # 空白のPerson構造体を割り当てる

$p->name("Jason Smythe");
$p->age("13");
$p->peers( ["Wilbur", "Ralph", "Fred"] );

# または、次の方法で設定する
@{$p->peers} = ("Wilbur", "Ralph", "Fred");

# 0番目の友人を含めて、それぞれの値を取り出す
printf "At age %d, %s's first friend is %s.\n",
  $p->age, $p->name, $p->peers(0);