NAME
String::ToIdentifier::EN - Convert Strings to English Program Identifiers
SYNOPSIS
use
utf8;
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, <rkitover@gmail.com>
REPOSITORY
http://github.com/rkitover/string-toidentifier-en
LICENSE AND COPYRIGHT
Copyright (c) 2018 Rafael Kitover <rkitover@gmail.com>.
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.