ben hengst > String-Clean > String::Clean

Download:
String-Clean-0.031.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  1
View/Report Bugs
Module Version: 0.031   Source  

SYNOPSIS ^

The goal of this module is to assist in the drudgery of string cleaning by allowing data objects to define what and how to clean.

EXAMPLES

   use String::Clean;

   my $clean = String::Clean->new();

   $clean->replace( { this => 'that', is => 'was' } , 'this is a test' ); 
      # returns 'that was a test'
   
   # see the tests for more examples 

THE OPTIONS HASH ^

Each function can take an optonal hash that will change it's behaviour. This hash can be passed to new and will change the defaults, or you can pass to each call as needed.

   opt: 
         Any regex options that you want to pass, ie {opt => 'i'} will allow 
         for case insensitive manipulation.
   replace : 
         If the value is set to 'word' then the replace function will look for 
         words instead of just a collection of charicters. 
         example: 

            replace( { is => 'was' },
                     'this is a test',
                   ); 

            returns 'thwas was a test', where 

            replace( { is => 'was' },
                     'this is a test',
                     { replace => 'word' },
                   ); 

            will return 'this was a test' 

   strip :
         Just like replace, if the value is set to 'word' then strip will look
         for words instead of just a collection of charicters. 

   word_ boundary :
         Hook to change what String::Clean will use as the word boundry, by 
         default it will use '\b'. Mainly this would allow String::Clean to 
         deal with strings like 'this,is,a,test'.

   escape :
         If this is set to 'no' then String::Clean will not try to escape any 
         of the things that you've asked it to look for.  

You can also override options at the function level again, but this happens as merged hash, for example:

   my $clean = String::Clean->new({replace => 'word', opt => 'i'});
   $clean->strip( [qw{a}], 'an Array', {replace =>'non-word'} );
   #returns 'n rray' because opt => 'i' was pulled in from the options at new.

CORE FUNCTIONS ^

new

The only thing exciting here is that you can pass the same options hash at construction, and this will cascade down to each function call.

replace

Takes a hash where the key is what to look for and the value is what to replace the key with.

   replace( $hash, $string, $opts );

replace_word

A shortcut that does the same thing as passing {replace => 'word'} to replace.

   replace_word( $hash, $string, $opts ); 

strip

Takes an arrayref of items to completely remove from the string.

   strip( $list, $sring, $opt);

strip_word

A shortcut that does the same thing as passing {strip => 'word'} to strip.

   strip_word( $list, $string, $opt);

WRAPPING THINGS UP AND USING YAML ^

clean_by_yaml

Because we have to basic functions that take two seperate data types... why not wrap those up, enter YAML.

   clean_by_yaml( $yaml, $string, $opt );

But how do we do that? Heres an example:

OLD CODE

   $string = 'this is still just a example for the YAML stuff';
   $string =~ s/this/that/;
   $string =~ s/is/was/;
   $string =~ s/\ba\b/an/;
   $string =~ s/still//;
   $string =~ s/for/to explain/;
   $string =~ s/\s\s/ /g;
   # 'that was just an example to explain the YAML stuff'

NEW CODE

   $string = 'this is still just a example for the YAML stuff';
   $yaml = q{
   ---
   this : that
   is   : was
   a    : an
   ---
   - still
   ---
   for : to explain
   '  ': ' '
   };
   $string = $clean->clean_by_yaml( $yaml, $string, { replace => 'word' } );
   # 'that was just an example to explain the YAML stuff'

ISSUES TO WATCH FOR:

AUTHOR ^

ben hengst, <notbenh at CPAN.org>

BUGS ^

Please report any bugs or feature requests to bug-string-clean at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=String-Clean. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc String::Clean

You can also look for information at:

ACKNOWLEDGEMENTS Lindsey Kuper and Jeff Griffin for giving me a reason to cook up this scheme. ^

COPYRIGHT & LICENSE ^

Copyright 2007 ben hengst, all rights reserved.

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

syntax highlighting: