Я пишу вещь для вывода чего-то похожего на JSON из структуры perl. Я хочу, чтобы цитирование вело себя следующим образом:
"string" outputs "string"
"05" outputs "05"
"5" outputs "5"
5 outputs 5
05 outputs 5, or 05 would be acceptable
JSON::XS обрабатывает это, проверяя, был ли скаляр "строковым" или нет, что я думаю, очень здорово. Но я не могу найти способ выполнить этот тест самостоятельно, не написав XS, чего я бы предпочел избежать. Это возможно? Я не могу найти это нигде на CPAN, не найдя обширного педантизма о Scalar::Util::looks_like_number и т. д., что совершенно не то, что мне нужно. Единственная временная мера, которую я могу найти, это Devel::Peek, который кажется злым. А также, как и JSON::XS, меня устраивает этот сценарий:
my $a = 5;
print $a."\n";
# now $a outputs "5" instead of 5)