Perlコーディング初心者質問スレ Part 59at PHPPerlコーディング初心者質問スレ Part 59 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト82:nobodyさん 09/02/21 05:09:33 >>81 質問内容が今ひとつ分からない。 package Parent; sub new { my ($proto) = @_; my $class = ref($proto) || $proto; return bless { greeting => 'hello' }, $class; } package Child; use base qw(Parent); sub new { $_[0]->SUPER::new } package main; use Data::Dumper; print Dumper(Child->new); # new print Dumper(Child->new->new); # clone 83:nobodyさん 09/02/21 05:32:46 ああもしかして、メソッドをオーバーライドしないときの動作かな? メソッドが実装されていなければ、親のクラスを辿って実行するよ。 package Parent; sub new { bless { greeting => 'hello' }, $_[0] } sub greeting { return $_[0]->{greeting} } package Child; use base qw(Parent); package main; print Child->new->greeting, "\n"; # Parentのメソッドが呼ばれる 84:nobodyさん 09/02/21 08:40:32 >>83 具体例を出すべきでしたね、すみません。 package Parent; sub new { bless {},shift } sub whoami { print "parent\n" } package Child; use base 'Parent'; sub whoami { print "child\n" } package main; my $obj = Child->new; $obj->whoami; # child $obj->SUPER::whoami; # エラー。"parent\n"を出してほしい 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch