■ ラクダ本 Vol1 第3版の誤植?
プログラミング perl VOLUME1 第3版に誤植発見。
p394 「12章 オブジェクト」の「12.7.3 オートロードによってアクセサを生成する」に登場する、Person モジュールの24行目。
croak "$self not an object" unless ref ($invocant);
は、
croak "$self not an object" unless ref ($self);
ですよね?細かい話だけど。
プログラミングPerl〈VOLUME1〉
posted with amazlet at 05.08.27
ラリー ウォール ジョン オーワント トム クリスチャンセン Larry Wall Jon Orwant Tom Christiansen 近藤 嘉雪
オライリー・ジャパン (2002/09)
売り上げランキング: 17,736
オライリー・ジャパン (2002/09)
売り上げランキング: 17,736
おすすめ度の平均: 

CGIを自在にこなす第一歩の書
Perl文法の仕組みを詳細に知りたい人の本
ラクダが踊る以下、モジュール全部。(コメント抜き:p
僕が誤字脱字してたらごめんなさいw
package Person;
use Carp;
my %Fields = (
"Person::name" => "unnamed",
"Person::race" => "unknown",
"Person::aliases" => {},
);
use subs qw(name race aliases);
sub new {
my $invocant = shift;
my $class = ref($invocant) || $invocant;
my $self = { %Fields, @_ };
bless $self, $class;
return $self;
}
sub AUTOLOAD {
my $self = shift;
croak "$self not an object" unless ref ($self);
my $name = our $AUTOLOAD;
return if $name =~ /::DESTROY$/;
unless ( exists $self->{$name} ) {
croak "Can't access `$name' field in $self";
}
if ( @_ ) { return $self->{$name} = shift }
else { return $self->{$name} }
}
トラックバック
このエントリーのトラックバックURL:
http://vkgtaro.jp/cgi-bin/mt/mt-tb.cgi/468



コメント
# PIA
(2005年08月27日 03:17)
確かにref($self)っすね~w
AUTOLOADって便利ですよねー。こないだ公開したやつで思いっきり使ってますわ。
# 海賊たろ
(2005年08月27日 13:40)
やー、PIA さんのモジュール読んでて、AUTOLOAD の仕組みよく知らないやーと思ってラクダ本読み返したんですよw
確かに便利そうです。コピペの練習が減りそうww