The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Clownfish::Parcel - Collection of code.

DESCRIPTION

A Parcel is a cohesive collection of code, which could, in theory, be published as as a single entity.

Clownfish supports two-tier manual namespacing, using a prefix, an optional class nickname, and the local symbol:

  prefix_ClassNick_local_symbol
  

Clownfish::Parcel supports the first tier, specifying initial prefixes. These prefixes come in three capitalization variants: prefix_, Prefix_, and PREFIX_.

CLASS METHODS

singleton

    Clownfish::Parcel->singleton(
        name  => 'Crustacean',
        cnick => 'Crust',
    );

Add a Parcel singleton to a global registry. May be called multiple times, but only with compatible arguments.

  • name - The name of the parcel.

  • cnick - The C nickname for the parcel, which will be used as a prefix for generated global symbols. Must be mixed case and start with a capital letter. Defaults to name.

default_parcel

   $parcel ||= Clownfish::Parcel->default_parcel;

Return the singleton for default parcel, which has no prefix.

OBJECT METHODS

get_prefix get_Prefix get_PREFIX

Return one of the three capitalization variants for the parcel's prefix.

acquire

    $parcel = Clownfish::Parcel->aquire($parcel_name_or_parcel_object);

Aquire a parcel one way or another. If the supplied argument is a Parcel, return it. If it's not defined, return the default Parcel. If it's a name, invoke singleton().

get_name get_cnick

Accessors.