NAME
Hash::KeyMorpher - Deep converter for naming conventions of hash keys
DESCRIPTION
Deeply change the nameing conventions for keys in hash structures, or simply change strings between naming conventions. Converts to CamelCase, mixedCamel, delimited_string, UPPER, LOWER
SYNOPSYS
use Hash::KeyMorpher; # import all, or
use Hash::KeyMorpher qw (key_morph to_camel to_mixed to_under to_delim); # import specific subs
# To use the string converters:
$res = to_camel('my_string'); # MyString
$res = to_mixed('my_string'); # myString
$res = to_under('myString'); # my_string
$res = to_delim('myString','-'); # my-string
# To morph keys in a hash, key_morph($hash,$method,$delim);
# method is one of camel,mixed,under,delim,upper,lower
$h1 = { 'level_one' => { 'LevelTwo' => 'foo' } };
$mixed = key_morph($h1,'mixed'); # { 'levelOne' => { 'levelTwo' => 'foo' } };
$delim = key_morph($h1,'delim','-'); # { 'level-one' => { 'level-two' => 'foo' } };
# To morph acceccor keys
$obj = Hash::Accessor->new(qw /CamelCase mixedCase delim_str UPPER lower/);
$camel = key_morph($obj,'camel');
EXPORT
This module exports key_morph, to_camel, to_mixed, to_under and to_delim. You will probably only need key_morph unless you really want the others.
FUNCTIONS
_split_words($str)
Splits a string into words, identifying boundaries using Capital Letters or Underscores etc. This sub is not exported
key_morph($hash,$method,$delim)
$method can be one of (camel, mixed, delim, upper, lower). $delim should be specified if using the delim method; by default its an empty string.
to_camel($str)
Convers string to CamelCase
to_mixed($str)
Convers string to mixedCamelCase
to_under($str)
Convers string to underscore_separated
to_delim($str,$delim)
Convers string to custom delimited-string (delimited by second parameter)
to_upper($str)
Returns the uppercase version of the rejoined string (removes undescores etc)
to_lower($str)
Returns the lowercase version of the rejoined string (removes undescores etc)
AUTHOR AND SUPPORT
Copyright (c) Michael Holloway 2013 , <michael@thedarkwinter.com>
COPYRIGHT
Perl Arstistic License