���äȤäȡ��Ȥ����櫓����������ľ�����Τ����ɡ������ƷѾ���Ȥ������ä��Τˤϥ辰�����롣
subtech - Bulknews::Subtech - MobileAgent�������Ǥ�ʤ��������⤽�⤳�Υ����ɤǤ�ư���ʤ���
̵����꤫���Ф����ʤ뤫��package MyMobileAgent; my $i; sub new { my $class = shift; my $self = HTTP::MobileAgent->new(@_); my $pkg = __PACKAGE__ . "::". $i++; no strict 'refs'; @{$pkg."::ISA"} = (ref $self, __PACKAGE__); bless $self, $pkg; }
�����"Singleton Class"�Ȥ���������ǡ����ҥ祦��II����Advanced Perl Programming 2nd Ed.�˾�äƤ�����ˡ��������ʲ��Τ褦�ˤ���С�$i
��Enclose����ɬ�פ��ʤ��ʤ롣
sub new { my $class = shift; my $self = HTTP::MobileAgent->new(@_); my $id = $self + 0; my $pkg = __PACKAGE__ . "::" . $id; no strict 'refs'; @{$pkg."::ISA"} = (ref $self, __PACKAGE__); bless $self, $pkg; }
���ҥ祦��II�Ϥ������������ΤäƤ��롣�����"Singleton Method"�ʤ��"Singleton Class"�Ȥ�����ˡ�ǡ���������򤤤Τ����ɡ�instance���Ȥ�package�򤳤�����Ȥ����Τϥ��ʴ��������롣
�̤Τ�����Ȥ��Ƥϡ��ۺ�Object::Prototype
��Ȥ�������⤢�롣
use strict; use warnings; use lib 'lib'; use HTTP::MobileAgent; use Object::ProtoType; my $hm = HTTP::MobileAgent->new(@ARGV); my $ma = Object::Prototype->new($hm); $ma->prototype(is_xhtml => sub { my $self = shift; return 1 if $self->is_docomo and $self->is_foma; return 1 if $self->is_ezweb and $self->is_win; if ( $self->is_softbank ) { return 1 if $self->is_type_w or $self->is_type_3gc; } return 0; }); my $ext = $ma->is_xhtml ? 'xhtml' : 'html'; warn $ext; __END__
% perl proto.pl "DoCoMo/2.0" html at proto.pl line 19. % perl proto.pl "DoCoMo/2.0 N2001" xhtml at proto.pl line 19.
��������ꡣ
���������Τϥ᥽�å��ɲä���ץ饰����Ǥ��Τ����С�package HTTP::MobileAgent::Plugin::XHTML; use strict; sub import { my $class = shift; *HTTP::MobileAgent::is_xhtml = sub { ... } } 1;
����Ǥ���С����⤳���񤫤ʤ��Ƥ⡢
sub HTTP::MobileAgent::is_xhtml { ... }
�Ǥ�Ԥ��롣�������������ΤȤ�������Ͻ������򤱤������ʤ����Ȥ����ȡ��⤷HTTP::MobileAgent::is_xhtml()
�����餫����¸�ߤ��Ƥ����顢��¸�Τ��줬��ñ¤¤ï¿½ï¿½ï¿½Æ¤ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½é¡£use warnings 'redefine'
�������Ƥ���С���ñ¤¤ÎºÝ¤Ë¤Ï·Ù¹ð¤³¤ï¿½ï¿½Ð¤ï¿½ï¿½Æ¤ï¿½ï¿½ï¿½ë¤¬ï¿½ï¿½Perl�Ǥ�Warning���Ф�����������Τ�����ϡ���Ū����Υե���ʤ餦�ʤ����ꡣ
��Ϥꥯ�饹�Ϥʤ�٤��Ѿ���ǽ�ʷ��ǽ񤤤Ƥ������������Τ������Gisle Aas�Υ⥸�塼�롢�ä�HTML::Parser
�����꤬���ͤˤʤ롣
�֤������٤ǥ��饹�򤳤�����ʤ�ơפȤ������⤢��Τ������޳�ưŪ�����ȤäƤ���Τ����顢���饹�Ϻ���¤Τ�Τ򤳤������������Τ���ˤ⡢�Ѿ��Ϥʤ�٤����ݡ��Ȥ����ߤ�����
Dan the Man with Too Many Packages to Juggle
���Υ֥����˥����Ȥ���ˤ�����������ɬ�פǤ���
��������������
���ε����ˤϵ��ĥ桼�����������Ȥ��Ǥ��ޤ���