NAME String::ToIdentifier::EN - Convert Strings to English Program Identifiers SYNOPSIS use utf8; use String::ToIdentifier::EN 'to_identifier'; to_identifier 'foo-bar'; # fooDashBar to_identifier 'foo-bar', '_'; # foo_dash_bar to_identifier 'foo.bar', '_'; # foo_dot_bar to_identifier "foo\x{4EB0}bar"; # fooJingBar to_identifier "foo\x00bar"; # fooNullCharBar to_identifier "foo\x00\x00bar"; # foo2NullCharsBar to_identifier "foo\x00\x00bar", '_'; # foo_2_null_chars_bar { no utf8; to_identifier "foo\xFF\xFFbar.baz"; # foo_2_0xFF_BarDotBaz to_identifier "foo\xFF\xFFbar.baz", '_'; # foo_2_0xFF_bar_dot_baz } DESCRIPTION This module provides a utility method, "to_identifier" for converting an arbitrary string into a readable representation using the ASCII subset of \w for use as an identifier in a computer program. The intent is to make unique identifier names from which the content of the original string can be easily inferred by a human just by reading the identifier. If you need the full set of \w including Unicode, see the subclass String::ToIdentifier::EN::Unicode. Currently, this process is one way only, and will likely remain this way. The default is to create camelCase identifiers, or you may pass in a separator char of your choice such as _. Binary char groups will be separated by _ even in camelCase identifiers to make them easier to read, e.g.: foo_2_0xFF_Bar. EXPORT Optionally exports the "to_identifier" function. SUBROUTINES to_identifier Takes the string to be converted to an identifier, and optionally a separator char such as _. If a separator char is not provided, a camelCase identifier will be returned. METHODS string_to_identifier The class method version of "to_identifier", if you want to use the object oriented interface. SEE ALSO String::ToIdentifier::EN::Unicode, Text::Unidecode, Lingua::EN::Inflect::Phrase AUTHOR Rafael Kitover, REPOSITORY http://github.com/rkitover/string-toidentifier-en LICENSE AND COPYRIGHT Copyright (c) 2018 Rafael Kitover . This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.