Marcel Grünauer > Data-SmartMunge-1.101612 > Data::SmartMunge

Download:
Data-SmartMunge-1.101612.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.101612   Source  

NAME ^

Data::SmartMunge - Munge scalars, hashes and arrays in flexible ways

VERSION ^

version 1.101612

SYNOPSIS ^

    use Data::SmartMunge qw(:all);

    my $s  = smart_munge('foo bar baz', sub { uc $_[0] });
    my $s2 = smart_munge('foo bar baz bar baz', delete_matching(qr/bar\s*/, 'g'));

    my $a_ref = smart_munge([ 1 .. 4 ], sub { [ reverse @{ $_[0] } ] });
    my @a = smart_munge([ 1 .. 4 ], sub { [ reverse @{ $_[0] } ] });

    my %h = smart_munge(
        { a => 'foo', b => 'bar' },
        sub {
            +{ map { $_ => uc $_[0]->{$_} } keys %{ $_[0] } };
        },
    );

    my $h_ref = smart_munge(
        { a => 'foo', b => 'bar' },
        { a => undef, c => 'baz' },
    );

DESCRIPTION ^

This module provides a generic way to munge scalars, hashes and arrays.

FUNCTIONS ^

smart_munge

Takes as the first argument - the data - either a scalar, an array reference or a hash reference. Takes as the second argument - the munger - either a hash or a code reference. It tries to apply the munger to the data. For example, if the munger is a code reference, that code will be run with the data as an argument. If both data and munger are hash references, the munger hash will be overlaid onto the data hash and the result will be returned.

If called in scalar context, any resulting array or hash will be returned as a reference. In list context, the array or hash will be returned as is.

If the munger is not defined, the data will be returned unchanged, again respecting context.

delete_matching

Takes a regular expression as the first argument and flags like s/// does as the optional second argument. Returns a ready-made munger that deletes the part of the data that matches the regular expression. If the flag argument contains g, all occurrences will be deleted.

For example:

    smart_munge('foo bar baz bar baz', delete_matching(qr/bar\s*/);
    # returns 'foo baz bar baz'

    smart_munge('foo bar baz bar baz', delete_matching(qr/bar\s*/, 'g');
    # returns 'foo baz baz'

INSTALLATION ^

See perlmodinstall for information and options on installing Perl modules.

BUGS AND LIMITATIONS ^

No bugs have been reported.

Please report any bugs or feature requests through the web interface at http://rt.cpan.org.

AVAILABILITY ^

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see http://search.cpan.org/dist/Data-SmartMunge/.

The development version lives at http://github.com/hanekomu/Data-SmartMunge/. Instead of sending patches, please fork this project using the standard git and github infrastructure.

AUTHOR ^

  Marcel Gruenauer <marcel@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2010 by Marcel Gruenauer.

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

syntax highlighting: