Number::Base::DWIM - delay parsing of based constants as long as possible.
use Numbers::Base::DWIM my $x = 011; print $x, "\n"; # prints 9 print "$x\n"; # prints 011 print oct($x) # prints 011
This module will delay parsing of based numeric constants (0b010101, 0655, 0xff) until the last possible moment. This means that if you use the constant as a string, then it will evaluate to the same form that the constant was declared in.
This module was developed after an discussion where some people found the behavior of perl -e 'print oct 011, "\n";' to be confusing. This module works around this by overloading the parsing of binary, hexidecimal and octal numeric constants. It then stores them in a dualvar, as provided by Scalar::Util.
perl -e 'print oct 011, "\n";'
dualvar
Originally this was implemented as a class, and the overload function returned an object with numification and stringification methods. Thanks to Brian D. Foy for suggesting that it use dualvar instead.
Due to a bug in overload, constants inside of and eval '...' won't be handled specially.
eval '...'
Clayton O'Neill <CMO@cpan.org>
Copyright (c) 2006 by Clayton O'Neill
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Number::Base::DWIM, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Number::Base::DWIM
CPAN shell
perl -MCPAN -e shell install Number::Base::DWIM
For more information on module installation, please visit the detailed CPAN module installation guide.