Send to your Kindle =head1 RIGHT:[[:t/X]] [[:t/実装]] *雛型 [#le6c20a0] Perlモジュールの雛型。 =cut package WikiEngine::_; use strict; use lib 'S:\Perl\_lib'; use Data::Dumper; use Data::Compare; use Toolkit; # use Smart::Comments qw/#####/; #use WikiEngine::Base; # [[WikiEngine/Base]]; our($VERSION, @ISA); $VERSION = 0.01; @ISA = qw(WikiEngine); sub New { my $self = {}; my($class, $arg) = @_; $self->{attr} = 'value'; # 開発時アサーション ### assert:$self # 運用中のみのアサーション ##### assert:$class bless $self, $class; } sub Dump { my $self = shift; ### assert:Data::Compare(\@_, []) Dumper($self); } sub MethodA { my $self = shift; my($arg1) = @_; # 致命的エラーのとき open my $f, '>', 'data.file' or die $!; close $f or die $!; # (復帰できる)エラー別に対処するとき try { } catch Error::_::Err1 with { # 独自エラーの処理1 my $e = shift; } except { # 独自エラーの処理2 my $e = shift; my $handler = sub { $e->{-object} = $self; throw $e; }; return { 'Error::_::Err2' => $handler, 'Error::_::Err3' => $handler, 'Error::_::Err4' => $handler, }; } otherwise { # その他のエラー処理 my $e = shift; throw Error::Simple->new($e->{-text}); } finally { }; 1; } # このクラス以下の独自エラー定義 package Error::_::Err1; use base qw/Error::Simple/; # アクセサーの宣言 use AutoloadAccessor; # use [[AutoloadAccessor]]; use subs qw{ Store_Id Fetch_Id }; sub AUTOLOAD { return if our $AUTOLOAD =~ /::DESTROY$/; die unless not $AUTOLOAD =~ /::_Recompose$/; _Recompose($_[0], $AUTOLOAD, @_[1 .. $#_]); } 1; =head1 RIGHT:[[:t/X]] [[:t/実装]] *雛型 [#le6c20a0] Perlモジュールの雛型。 =cut package WikiEngine::_; use strict; use lib 'S:\Perl\_lib'; use Data::Dumper; use Data::Compare; use Toolkit; # use Smart::Comments qw/#####/; #use WikiEngine::Base; # [[WikiEngine/Base]]; our($VERSION, @ISA); $VERSION = 0.01; @ISA = qw(WikiEngine); sub New { my $self = {}; my($class, $arg) = @_; $self->{attr} = 'value'; # 開発時アサーション ### assert:$self # 運用中のみのアサーション ##### assert:$class bless $self, $class; } sub Dump { my $self = shift; ### assert:Data::Compare(\@_, []) Dumper($self); } sub MethodA { my $self = shift; my($arg1) = @_; # 致命的エラーのとき open my $f, '>', 'data.file' or die $!; close $f or die $!; # (復帰できる)エラー別に対処するとき try { } catch Error::_::Err1 with { # 独自エラーの処理1 my $e = shift; } except { # 独自エラーの処理2 my $e = shift; my $handler = sub { $e->{-object} = $self; throw $e; }; return { 'Error::_::Err2' => $handler, 'Error::_::Err3' => $handler, 'Error::_::Err4' => $handler, }; } otherwise { # その他のエラー処理 my $e = shift; throw Error::Simple->new($e->{-text}); } finally { }; 1; } # このクラス以下の独自エラー定義 package Error::_::Err1; use base qw/Error::Simple/; # アクセサーの宣言 use AutoloadAccessor; # use [[AutoloadAccessor]]; use subs qw{ Store_Id Fetch_Id }; sub AUTOLOAD { return if our $AUTOLOAD =~ /::DESTROY$/; die unless not $AUTOLOAD =~ /::_Recompose$/; _Recompose($_[0], $AUTOLOAD, @_[1 .. $#_]); } 1;