Class::MakeMethods::Emulator::Struct.3pm

Langue: en

Autres versions - même langue

Version: 2004-09-06 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Class::MakeMethods::Emulator::Struct - Emulate Class::Struct

SYNOPSIS

   use Class::MakeMethods::Emulator::Struct;
 
 
   struct ( 
       simple  => '$',
       ordered => '@', 
       mapping => '%',
       obj_ref => 'FooObject' 
   );
 
 

DESCRIPTION

This module emulates the functionality of Class::Struct by munging the provided field-declaration arguments to match those expected by Class::MakeMethods.

It supports the same four types of accessors, the choice of array-based or hash-based objects, and the choice of installing methods in the current package or a specified target.

EXAMPLE

The below three declarations create equivalent methods for a simple hash-based class with a constructor and four accessors.
   use Class::Struct;
   struct ( 
       simple  => '$',
       ordered => '@', 
       mapping => '%',
       obj_ref => 'FooObject' 
   );
 
 
   use Class::MakeMethods::Emulator::Struct; 
   struct ( 
       simple  => '$',
       ordered => '@', 
       mapping => '%',
       obj_ref => 'FooObject' 
     );
 
 
   use Class::MakeMethods ( 
       -MakerClass               => 'Standard::Array',
       'new'                     => 'new',
       'scalar'                  => 'simple',
       'array -auto_init 1'      => 'ordered', 
       'hash -auto_init 1'       => 'mapping',
       'object -auto_init 1'     => '-class FooObject obj_ref' 
     );
 
 

COMPATIBILITY

This module aims to offer a ``95% compatible'' drop-in replacement for the core Class::Struct module for purposes of comparison and code migration.

The "class-struct.t" test for the core Class::Struct module is included with this package. The test is unchanged except for the a direct substitution of this emulator's name in the place of the core module.

However, there are numerous internal differences between the methods generated by the original Class::Struct and this emulator, and some existing code may not work correctly without modification.

SEE ALSO

See Class::MakeMethods for general information about this distribution.

See Class::MakeMethods::Emulator for more about this family of subclasses.

See Class::Struct for documentation of the original module.

See Class::MakeMethods::Standard::Hash and Class::MakeMethods::Standard::Array for documentation of the created methods.