Changes between Version 52 and Version 53 of Dev/Perl


Ignore:
Timestamp:
Mar 26, 2013 11:57:43 PM (11 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Dev/Perl

    v52 v53  
    155155 * cpan:Class::Accessor::Fast 
    156156  * newする際に初期値を与えないと、getterはundefを返す 
    157 {{{#!perl 
    158 use Foo;    # use base qw(Class::Accessor::Fast); 
    159 my $foo = Foo->new; 
    160 $foo->hoge;  # undef 
    161 }}} 
     157  1. Foo.pm 
     158{{{#!perl 
     159package Foo; 
     160use base qw(Class::Accessor::Fast); 
     161 
     162__PACKAGE__->mk_accessors( qw(bar bazz) ); 
     163 
     1641; 
     165}}} 
     166  1. main.pl 
     167{{{#!perl 
     168use Foo; 
     169use feature say; 
     170 
     171my $foo = Foo->new( {bar => 1} ); 
     172if (defined $foo->bar) { say $foo->bar; } 
     173if (! defined $foo->bazz) { say "undef"; } 
     174$foo->hoge; 
     175}}} 
     176  1. $ ./main.pl 
     177{{{ 
     1781 
     179undef 
     180Can't locate object method "hoge" via package "Foo" at main.pl line 7. 
     181}}} 
     182 * 放り込んだハッシュリファレンスは元の構造のままアクセスできる 
     183  1. main.pl 
     184{{{#!perl 
     185use Foo; 
     186use feature say; 
     187 
     188my $foo = Foo->new( {hoge => 1, fuga => 2, piyo => { moge => [ a => b => c => 1 ] }} ); 
     189if (defined $foo->bar) { say $foo->bar; } 
     190 
     191use Data::Dumper; 
     192say Dumper $foo; 
     193}}} 
     194  1. $ ./main.pl 
     195{{{ 
     196$VAR1 = bless( { 
     197                 'piyo' => { 
     198                             'moge' => [ 
     199                                         'a', 
     200                                         'b', 
     201                                         'c', 
     202                                         1 
     203                                       ] 
     204                           }, 
     205                 'fuga' => 2, 
     206                 'hoge' => 1 
     207               }, 'Foo' ); 
     208 
     209}}}