String::Unescape - Unescape perl-escaped string
# Call as class method
# Call as function
use String::Escape qw(unescape);
This module provides just one function, Perl's unescaping without variable interpolation. Sometimes, I want to provide a string including a character difficult to represent without escaping, outside from Perl. Also, sometimes, I can not rely on shell expansion.
count -t '\t'
eval can handle this situation but it has too more power than required. This is the purpose for this module.
This module is intented to be compatible with Perl's native unescaping as much as possible, with the following limitation. If the result is different from one by Perl beyond the limitation, it is considered as a bug. Please report it.
There are the following exceptions that Perl's behavior is not emulated.
Whether warning is produced or not.
Strings that perl doesn't accept. For those strings, the results by this module are undefined.
\L in \U and \U in \L. By perl, they are not stacked, which means all \Q, \L, \U and \F (if available) modifiers from the prior \L, \U or \F become to have no effect then restart the new \L, \U or \F conversion. By this module, stacked.
\L\u and \U\l. By Perl, they are swapped as \u\L and \l\U, respectively. By this module, not swapped.
For 3 and 4, t/quirks_in_perl.t contains actual examples.
Returns unescaped $str. For escaping, see "Quote-and-Quote-like-Operators" in perlop.
charnames in Perl 5.6 does not have required functionality that is Unicode name <-> code conversion in runtime, thus Perl 5.6 support is explicitly dropped.
Yasutaka ATARASHI <firstname.lastname@example.org>
This software is copyright (c) 2013 by Yasutaka ATARASHI.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install String::Unescape, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.