Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید

8.43. Class::Struct


Formerly named
Class::Template; exports a single
function, struct. struct takes
a list of element names and types, and optionally a class name, and
creates a Perl class that implements a struct-like data structure. It
also creates a constructor method, new, for
creating objects of the class (so a class created this way must not
itself define a new method).

Each element in the struct data has an accessor method, which is used
to assign to the element and to fetch its value. The default accessor
can be overridden by declaring a sub of the same name in the package.
Each element''s type can be scalar, array, hash, or
class.


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 present, is the value that will be assigned
to that array element.


class (Class_Name or *Class_Name)


The element''s value must be a reference blessed to
the named class or to one of its subclasses. The element is
initialized to the result of calling the new
constructor of the named class. The accessor''s
argument, if any, is the value that will be assigned to the element.
The accessor croak s if it''s not
an appropriate object reference.


hash (% or *%)


The element is a hash, initialized to ( ). With no
argument, the accessor returns a reference to the
element''s whole hash. With one or two arguments, the
first argument is a key specifying one element of the hash; the
second argument, if present, is the value to be assigned to that hash
element.


scalar ($ or *$)


The element is a scalar, initialized to undef. The
accessor''s argument, if any, is assigned to the
element.



/ 875