Cédric Bouvier > Launcher-Cascade > Launcher::Cascade::ListOfStrings

Download:
Launcher-Cascade-0.02.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Source  

NAME ^

Launcher::Cascade::ListOfStrings - a wrapper around an array to make it inherit from Launcher::Cascade::Printable

SYNOPSIS ^

    use Launcher::Cascade::ListOfStrings;

    my $l = new Launcher::Cascade::ListOfStrings
        -list => [ 'some', 'strings', 'to', 'start', 'with' ],
    ;

    push @$l, 'and', 'then', 'some';

    print $l->as_string;
    print "$l";   # same as above

    # alter the formatting
    $l->separator(q{, });
    $l->preparator(sub { qq{"$_"} });

    print "$l\n"; # prints quoted strings separated by comas

DESCRIPTION ^

Attributes

preparator

A coderef used to prepare each element in list() before including it the generated string. The coderef will be invoked with $_ locally aliased to the current element. By default, preparator() is the identity function (i.e., it returns $_ untouched).

separator

The string to insert between each element in list() when generating a string (sort of like Perl's $" built-in variable. See perlvar). Defaults to the empty string.

string_after
string_before

Strings to prepend and, respectively, append, to the string representation of the list(). Both default to the empty string.

list

The reference to the array containing the elements. This can also be accessed by dereferencing the object as if it were an array reference (see SYNOPSIS).

Methods

as_string

Returns a string representation of the object. Each element in list() is first passed on to the coderef in preparator(), and the list of results from preparator() is concatenated with the value of separator().

This method is called when the object is "stringified", i.e., when it is interpolated in a double-quoted string.

EXAMPLES ^

    my $l = new Launcher::Cascade::ListOfStrings -list => [ qw( frodo pippin merry sam ) ];

    $l->separator(q{, });
    $l->preparator(sub { ucfirst });

    print "$l\n"; # "Frodo, Pippin, Merry, Sam" and a newline

SEE ALSO ^

Launcher::Cascade::Printable

AUTHOR ^

Cédric Bouvier <cbouvi@cpan.org>

COPYRIGHT & LICENSE ^

Copyright (C) 2006 Cédric Bouvier, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.