Date: Saturday November 30, 2019 @ 18:25 Author: argrath Update of /cvsroot/perldocjp/docs/modules/fields-2.14 In directory sf-cvs:/tmp/cvs-serv31289/modules/fields-2.14 Removed Files: fields.pod Log Message: base-2.14/fields =================================================================== File: no file fields.pod Status: Up-to-date Working revision: No entry for fields.pod Repository revision: 1.3 /cvsroot/perldocjp/docs/modules/fields-2.14/Attic/fields.pod,v Existing Tags: No Tags Exist -------------- next part -------------- Index: docs/modules/fields-2.14/fields.pod diff -u docs/modules/fields-2.14/fields.pod:1.2 docs/modules/fields-2.14/fields.pod:removed --- docs/modules/fields-2.14/fields.pod:1.2 Sat May 4 04:58:41 2013 +++ docs/modules/fields-2.14/fields.pod Sat Nov 30 18:25:49 2019 @@ -1,326 +0,0 @@ - -=encoding euc-jp - -=head1 NAME - -=begin original - -fields - compile-time class fields - -=end original - -fields - ¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥¯¥é¥¹¥Õ¥£¡¼¥ë¥É - -=head1 SYNOPSIS - - { - package Foo; - use fields qw(foo bar _Foo_private); - sub new { - my Foo $self = shift; - unless (ref $self) { - $self = fields::new($self); - $self->{_Foo_private} = "this is Foo's secret"; - } - $self->{foo} = 10; - $self->{bar} = 20; - return $self; - } - } - - my $var = Foo->new; - $var->{foo} = 42; - - # this will generate an error - $var->{zap} = 42; - - # subclassing - { - package Bar; - use base 'Foo'; - use fields qw(baz _Bar_private); # not shared with Foo - sub new { - my $class = shift; - my $self = fields::new($class); - $self->SUPER::new(); # init base fields - $self->{baz} = 10; # init own fields - $self->{_Bar_private} = "this is Bar's secret"; - return $self; - } - } - -=head1 DESCRIPTION - -=begin original - -The C<fields> pragma enables compile-time verified class fields. - -=end original - -C<fields> ¥×¥é¥°¥Þ¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¸¡¾Ú¤¹¤ë¥¯¥é¥¹¥Õ¥£¡¼¥ë¥É¤ò͸ú¤Ë¤·¤Þ¤¹¡£ - -=begin original - -NOTE: The current implementation keeps the declared fields in the %FIELDS -hash of the calling package, but this may change in future versions. -Do B<not> update the %FIELDS hash directly, because it must be created -at compile-time for it to be fully useful, as is done by this pragma. - -=end original - -Ãí°Õ: ¸½ºß¤Î¼ÂÁõ¤Ï¸Æ¤Ó½Ð¤·¥Ñ¥Ã¥±¡¼¥¸¤Î %FIELDS ¥Ï¥Ã¥·¥å¤ËÀë¸À¤µ¤ì¤¿ -¥Õ¥£¡¼¥ë¥É¤òÊÝ»ý¤·¤Þ¤¹¤¬¡¢¤³¤ì¤Ï¾Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤ÇÊѹ¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ -%FIELDS ¥Ï¥Ã¥·¥å¤òľÀÜ B<¹¹¿·¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤>; because it must be created -at compile-time for it to be fully useful, as is done by this pragma. -(TBT) - -=begin original - -B<Only valid for perl before 5.9.0:> - -=end original - -B<5.9.0 °ÊÁ°¤Î perl ¤Ç¤Î¤ß͸ú:> - -=begin original - -If a typed lexical variable holding a reference is used to access a -hash element and a package with the same name as the type has -declared class fields using this pragma, then the operation is -turned into an array access at compile time. - -=end original - -If a typed lexical variable holding a reference is used to access a -hash element and a package with the same name as the type has -declared class fields using this pragma, then the operation is -turned into an array access at compile time. -(TBT) - - -=begin original - -The related C<base> pragma will combine fields from base classes and any -fields declared using the C<fields> pragma. This enables field -inheritance to work properly. - -=end original - -The related C<base> pragma will combine fields from base classes and any -fields declared using the C<fields> pragma. This enables field -inheritance to work properly. -(TBT) - -=begin original - -Field names that start with an underscore character are made private to -the class and are not visible to subclasses. Inherited fields can be -overridden but will generate a warning if used together with the C<-w> -switch. - -=end original - -Field names that start with an underscore character are made private to -the class and are not visible to subclasses. Inherited fields can be -overridden but will generate a warning if used together with the C<-w> -switch. -(TBT) - -=begin original - -B<Only valid for perls before 5.9.0:> - -=end original - -B<5.9.0 °ÊÁ°¤Î perl ¤Ç¤Î¤ß͸ú:> - -=begin original - -The effect of all this is that you can have objects with named -fields which are as compact and as fast arrays to access. This only -works as long as the objects are accessed through properly typed -variables. If the objects are not typed, access is only checked at -run time. - -=end original - -The effect of all this is that you can have objects with named -fields which are as compact and as fast arrays to access. This only -works as long as the objects are accessed through properly typed -variables. If the objects are not typed, access is only checked at -run time. -(TBT) - - -=begin original - -The following functions are supported: - -=end original - -The following functions are supported: -(TBT) - -=over 4 - -=item new - -=begin original - -B< perl before 5.9.0: > fields::new() creates and blesses a -pseudo-hash comprised of the fields declared using the C<fields> -pragma into the specified class. - -=end original - -B< perl before 5.9.0: > fields::new() creates and blesses a -pseudo-hash comprised of the fields declared using the C<fields> -pragma into the specified class. -(TBT) - -=begin original - -B< perl 5.9.0 and higher: > fields::new() creates and blesses a -restricted-hash comprised of the fields declared using the C<fields> -pragma into the specified class. - -=end original - -B< perl 5.9.0 and higher: > fields::new() creates and blesses a -restricted-hash comprised of the fields declared using the C<fields> -pragma into the specified class. -(TBT) - -=begin original - -This function is usable with or without pseudo-hashes. It is the -recommended way to construct a fields-based object. - -=end original - -This function is usable with or without pseudo-hashes. It is the -recommended way to construct a fields-based object. -(TBT) - -=begin original - -This makes it possible to write a constructor like this: - -=end original - -This makes it possible to write a constructor like this: -(TBT) - - package Critter::Sounds; - use fields qw(cat dog bird); - - sub new { - my $self = shift; - $self = fields::new($self) unless ref $self; - $self->{cat} = 'meow'; # scalar element - @$self{'dog','bird'} = ('bark','tweet'); # slice - return $self; - } - -=item phash - -=begin original - -B< before perl 5.9.0: > - -=end original - -B< perl 5.9.0 °ÊÁ°: > - -=begin original - -fields::phash() can be used to create and initialize a plain (unblessed) -pseudo-hash. This function should always be used instead of creating -pseudo-hashes directly. - -=end original - -fields::phash() can be used to create and initialize a plain (unblessed) -pseudo-hash. This function should always be used instead of creating -pseudo-hashes directly. -(TBT) - -=begin original - -If the first argument is a reference to an array, the pseudo-hash will -be created with keys from that array. If a second argument is supplied, -it must also be a reference to an array whose elements will be used as -the values. If the second array contains less elements than the first, -the trailing elements of the pseudo-hash will not be initialized. -This makes it particularly useful for creating a pseudo-hash from -subroutine arguments: - -=end original - -If the first argument is a reference to an array, the pseudo-hash will -be created with keys from that array. If a second argument is supplied, -it must also be a reference to an array whose elements will be used as -the values. If the second array contains less elements than the first, -the trailing elements of the pseudo-hash will not be initialized. -This makes it particularly useful for creating a pseudo-hash from -subroutine arguments: -(TBT) - - sub dogtag { - my $tag = fields::phash([qw(name rank ser_num)], [@_]); - } - -=begin original - -fields::phash() also accepts a list of key-value pairs that will -be used to construct the pseudo hash. Examples: - -=end original - -fields::phash() also accepts a list of key-value pairs that will -be used to construct the pseudo hash. Examples: -(TBT) - - my $tag = fields::phash(name => "Joe", - rank => "captain", - ser_num => 42); - - my $pseudohash = fields::phash(%args); - -=begin original - -B< perl 5.9.0 and higher: > - -=end original - -B< perl 5.9.0 °Ê¹ß: > -(TBT) - -=begin original - -Pseudo-hashes have been removed from Perl as of 5.10. Consider using -restricted hashes or fields::new() instead. Using fields::phash() -will cause an error. - -=end original - -Pseudo-hashes have been removed from Perl as of 5.10. Consider using -restricted hashes or fields::new() instead. Using fields::phash() -will cause an error. -(TBT) - -=back - -=head1 SEE ALSO - -L<base> - -=begin meta - -Translate: SHIRAKATA Kentaro <argra****@ub32*****> -Status: in progress - -=end meta - -=cut -