【发布时间】:2016-05-14 14:50:02
【问题描述】:
如何解决以下问题?
use 5.014;
use warnings;
use Test::Simple tests => 4;
ok( doit(0123) == 83, "arg as octal number" );
ok( doit(83) == 83, "arg as decimal number" );
ok( doit('0123') == 83, "arg as string with leading zero" );
ok( doit('123') == 83, "arg as string without leading zero" );
sub doit {
my $x = shift;
return $x; # how to replace this line
#return got_the_arg_as_string ? oct($x) : $x; # with something like this
}
例如如果我将任何字符串传递给doit 子 - 平均引用值 - (带或不带前导零),它应该转换为八进制值。否则,它只是一个数字。
【问题讨论】:
-
想知道为什么需要这样的接口,其中带引号和不带引号的参数的行为不同。对我来说,这看起来像是未来错误的来源......
-
@cajwine:这与你在你希望 doit('123') 也被视为八进制的问题中所说的相矛盾??
标签: perl