Hash::Key::Quote - Utility routines related to quoting of hash keys
This document describes version 0.002 of Hash::Key::Quote (from Perl distribution Hash-Key-Quote), released on 2019-07-10.
Return true if $str should be quoted as a hash key when placed before the fat comma (=>) operator. According to the perlop documentation:
$str
=>
The "=>" operator (sometimes pronounced "fat comma") is a synonym for the comma except that it causes a word on its left to be interpreted as a string if it begins with a letter or underscore and is composed only of letters, digits and underscores. This includes operands that might otherwise be interpreted as operators, constants, single number v-strings or function calls. If in doubt about this behavior, the left operand can be quoted explicitly.
This means strings like "and" or "v1" need not be quoted.
"and"
"v1"
But there are several other cases where a string needs not be quoted. For example, numbers except in these cases:
012 # perl will interpret it as a positive octal literal -012 # perl will interpret it as a negative octal literal 1_000_000 # perl will strip the underscores from number -1_000_000 # ditto 1_0e10 # ditto -1_0e10 # ditto +123 # perl will strip the + sign -+123 # ditto 1e2 # perl will normalize it to "100" 1_00a # not a valid number, must be quoted
Another example is non-number string that begins with a dash and followed only by letters/numbers/underscores, e.g. -foo.
-foo
For simplicity, you should probably just always quote. But if you only want to quote when necessary, this routine can help you.
Please visit the project's homepage at https://metacpan.org/release/Hash-Key-Quote.
Source repository is at https://github.com/perlancar/perl-Hash-Key-Quote.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Hash-Key-Quote
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
perlop
Data::Dump from which this code is extracted.
perlancar <perlancar@cpan.org>
This software is copyright (c) 2019 by perlancar@cpan.org.
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 Hash::Key::Quote, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Hash::Key::Quote
CPAN shell
perl -MCPAN -e shell install Hash::Key::Quote
For more information on module installation, please visit the detailed CPAN module installation guide.