ch16.024_best

来自「Perl Best Practices the source code」· 024_BEST 代码 · 共 96 行

024_BEST
96
字号
################################################################################   Code fragment (Recommended) from Chapter 16 of "Perl Best Practices"   ####     Copyright (c) O'Reilly & Associates, 2005. All Rights Reserved.      ####  See: http://www.oreilly.com/pub/a/oreilly/ask_tim/2001/codepolicy.html  ################################################################################# Standard modules...use strict;use warnings;use IO::Prompt;use Carp;use English qw( -no_match_vars );use Data::Alias;use Readonly;my $new_client = Client::Corporate->new( )    -> set_client_name('Humperdinck')    -> set_corp_name ('Florin')    -> set_position('CEO')    -> Client::set_client_num ('124C1')    -> Client::Corporate::set_client_num('F_1692')    ;package Client;use Class::Std::Utils;use Carp;{    my %client_num_of;    my %name_of;     sub new {        my ($class) = @_;        croak q{Can't initialize in constructor (use accessors)} if @_ > 1;         # [Set up purely internal state here]         return bless anon_scalar(), $class;       }    sub set_client_name {        my ($self, $name) = @_;        $name_of{ident $self} = $name;        return $self;    }    sub set_client_num {        my ($self, $num) = @_;        $client_num_of{ident $self} = $num;        return $self;    }    # etc.    END {         use Data::Dumper 'Dumper';        warn Dumper [ \%client_num_of, \%name_of ];    }} package Client::Corporate;use base qw( Client );use Class::Std::Utils;{    my %client_num_of;    my %corporation_of;    my %position_of;      sub set_client_num {        my ($self, $num) = @_;        $client_num_of{ident $self} = $num;        return $self;    }    sub set_corp_name {        my ($self, $corp) = @_;        $corporation_of{ident $self} = $corp;        return $self;    }    sub set_position {        my ($self, $pos) = @_;        $position_of{ident $self} = $pos;        return $self;    }    # etc.    END {         use Data::Dumper 'Dumper';        warn Dumper [ \%client_num_of, \%corporation_of, \%position_of ];    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?