Name
struct
Synopsis
struct (paramlist
)
Creates a class, with object methods for each
element of the class. The parameter list
paramlist
can take one of three
forms:
struct( CLASS_NAME => [ ELEMENT_LIST ]); # Object is array-based struct( CLASS_NAME => { ELEMENT_LIST }); # Object is hash-based struct( ELEMENT_LIST ); # Class name is current, and package name # object is array-based
The array-based element lists are faster and smaller, but the hash-based list is more flexible. The class that is created can be a subclass of the UNIVERSAL class, but not of any other class.
Element list
The items in the ELEMENT_LIST are of the form:
NAME => TYPE, ...
in which each NAME=>TYPE
pair declares one element
of the struct
. Each element
name is defined as an accessor method, unless a method is
explicitly defined with that name. (In that case, a warning is
issued if the -w flag is set.)
Element types and accessor methods
There are four possible element types, each represented by a
string. Each string may start with an asterisk (*
), indicating that a reference to the
element will be returned. The type of an element determines the
accessor method provided. The following list shows the element
types, the strings that represent them, and the accessor:
- array (
@
or*@
) The element is an array, initialized to
( )
. With no argument, the accessor returns a reference to the element’s whole array. With one or two arguments, the first argument is an index specifying one element of the array; the second argument, if ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.