宮川といいます。 On Fri, 11 Jan 2002 12:06:56 +0900 Taku Nakajima <tnakajima / brain-tokyo.jp> wrote: > みなさんの議論を参考にして、こういうスタイルの開発を支援する > collaboration.rbというライブラリを作ってみました。 (Perl の話で恐縮ですが、)original.pm というのをつくってみました。 もし興味のある方がいらっしゃいましたら、なにかご意見などいただける と幸いです。 # 本来の趣旨をあまり理解してない可能性もあるので(汗 http://bulknews.net/lib/archives/original-0.01.tar.gz NAME original - MixJuice in Perl SYNOPSIS package Animal; sub new { my($class, $hashref) = @_; bless {%$hashref}, $class; } package Animal::Speak; use original 'Animal'; sub speak { my $self = shift; return "My name is $self->{name}"; } package Animal::Dog; use original 'Animal'; sub bark { return 'bow wow'; } sub speak { my $self = shift; if ($self->{name} eq 'Snoopy') { return "Snoopy is $self->{name}"; } $self->ORIGINAL::speak(@_); # or $self->original(@_); } # Then, in a main script! use Animal; use Animal::Speak; my $spot = Animal->new({ name => 'Spot' }); print $spot->speak; # 'My name is Spot'; use Animal::Dog; my $snoopy = Animal->new({ name => 'Snoopy' }); print $snoopy->bark; # 'bow wow'; print $snoopy->speak; # 'Snoopy is Snoopy'; DESCRIPTION original.pm is a proof-of-concept implemetation of MixJuice, in Perl. See http://staff.aist.go.jp/y-ichisugi/mj/ for details :) AUTHOR Tatsuhiko Miyagawa <miyagawa / bulknews.net> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO http://www.ogis-ri.co.jp/otc/hiroba/technical/MixJuice/, the NEXT manpage, the Exporter::Lite manpage, the Class::Virtually::Abstract manpage -- Tatsuhiko Miyagawa <miyagawa / bulknews.net>