perl - クラス雛形

自分用perl雛形クラス

#-------------------------------------------------------------------------------
# ClassHinagata.pm - クラスの雛形
#
#   使用例)
#
#   #---------- コンストラクタ
#   #my $ch = ClassHinagata->new("1st message", "2nd message");
#
#   #---------- 関数
#   $ch->print_msg();
#   $ch->print_msg_2();
#
#   #---------- プロパテイ[get/set]
#   $ch->msg($ch->msg." + "."メッセージを追加してみた");
#   $ch->print_msg();
#
#-------------------------------------------------------------------------------
package ClassHinagata;   #クラス名

#-------------------------------------------------------------------------------
# use
#-------------------------------------------------------------------------------
use strict;
use warnings;

#-------------------------------------------------------------------------------
# コンストラクタ
#-------------------------------------------------------------------------------
sub new{
   my $package = shift;
   my $this = {};
   bless $this, $package;

   #初期化処理(プライベート変数を設定、コンストラクタ引数を設定、初期化処理)
   $this->init( @_ );

   return $this;
}

#-------------------------------------------------------------------------------
# オブジェクトの初期化
#-------------------------------------------------------------------------------
sub init{
   my ( $this, @args ) = @_;

   #変数定義:コンストラクター引数を設定
   $this->{ msg } = $args[0];
   $this->{ msg_2 } = $args[1];


   #変数定義:コンストラクター引数以外の変数を設定
   $this->{ main } = "main";

   # 初期化処理を記述...

}

#-------------------------------------------------------------------------------
# アクセッサ (get/set)
#-------------------------------------------------------------------------------
#変数毎に定義
sub msg{
   my $this = shift;

   if( @_ ){
       #set
       my $old = $this->{ msg };
       return $this->{ msg } = $_[0];
   }
   else{
       #get
       return $this->{ msg };
   }
}

#-------------------------------------------------------------------------------
# 関数
#-------------------------------------------------------------------------------
sub print_msg{
   my $this = shift;
   print( $this->{ msg }."\n" );
}

#-------------------------------------------------------------------------------
# 関数
#-------------------------------------------------------------------------------
sub print_msg_2{
   my $this = shift;
   print( $this->{ msg_2 }."\n" );
}

1;