Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* Class::Data::Inheritableを使ってクラス変数のアクセサを...
クラス変数のアクセサを作る。すなわち、あるインスタンスの...
package CDI;
use base qw/Class::Data::Inheritable/;
__PACKAGE__->mk_classdata( name => 'taro' );
sub new {
my $class = shift;
my ($args) = (@_);
$args ||= {};
return bless { %{$args} }, $class;
}
#!/usr/local/bin/perl
my $cdi = CDI->new( { name => 'hanako' } );
print $cdi->name,"\n"; # taro
$cdi->name('jiro');
print $cdi->name,"\n"; # jiro
my $cdi2 = $cdi;
$cdi2->name('saburo');
print $cdi->name,"\n"; # saburo
print $cdi2->name,"\n"; # saburo
undef($cdi);
undef($cdi2);
$cdi = CDI->new;
print $cdi->name,"\n"; # saburo
- $cdiを$cdi2へコピーしても、$cdiと$cdi2をundefした後に$c...
- Class::Accessorと比較して、
- Class::Data::Inheritableにはnew()がないので、自分でnew(...
- mk_classdata()は1組のハッシュしか受け取らないので、複数...
** 参考 [#r2cca3a6]
http://search.cpan.org/perldoc?Class::Data::Inheritable
終了行:
* Class::Data::Inheritableを使ってクラス変数のアクセサを...
クラス変数のアクセサを作る。すなわち、あるインスタンスの...
package CDI;
use base qw/Class::Data::Inheritable/;
__PACKAGE__->mk_classdata( name => 'taro' );
sub new {
my $class = shift;
my ($args) = (@_);
$args ||= {};
return bless { %{$args} }, $class;
}
#!/usr/local/bin/perl
my $cdi = CDI->new( { name => 'hanako' } );
print $cdi->name,"\n"; # taro
$cdi->name('jiro');
print $cdi->name,"\n"; # jiro
my $cdi2 = $cdi;
$cdi2->name('saburo');
print $cdi->name,"\n"; # saburo
print $cdi2->name,"\n"; # saburo
undef($cdi);
undef($cdi2);
$cdi = CDI->new;
print $cdi->name,"\n"; # saburo
- $cdiを$cdi2へコピーしても、$cdiと$cdi2をundefした後に$c...
- Class::Accessorと比較して、
- Class::Data::Inheritableにはnew()がないので、自分でnew(...
- mk_classdata()は1組のハッシュしか受け取らないので、複数...
** 参考 [#r2cca3a6]
http://search.cpan.org/perldoc?Class::Data::Inheritable
ページ名: