Я так понимаю что с точки зрения perl все красиво потому что литерал "inf" трактуется специально всеми арифметическими функциями не генерируя предупреждения. Например:
$ perl -we ' $x = "inf"; $,=$\="\n"; print $x > 0, $x/2, $x+10, $x/"inf" ' 1 inf inf nan Т.е. получается что "inf" это правомерное целое число, а значит в perldoc -f int написана вся правда ;). 2012/12/13 Oleg Alistratov <[email protected]>: > Мда. Это у меня мелкие претензии. Дело не в inf и nan. > Вообще любой литерал, который не влазит в IV, создает NV. > > Так что в perldoc -f int написана не вся правда :) > > 13.12.2012, 11:46, "Oleg Alistratov" <[email protected]>: >> Внезапно: >> >> % perl -e 'print int("Inf"), "\n";' >> inf >> >> Чудес там, конечно, нет, возвращается NV: >> >> % perl -mDevel::Peek -e '$a = int("Inf"); print Devel::Peek::Dump($a), "\n";' >> SV = NV(0x7f9cf1830e00) at 0x7f9cf18290e8 >> REFCNT = 1 >> FLAGS = (NOK,pNOK) >> NV = inf >> >> но получается, что функции int() нельзя доверять в плане возвращения целых >> чисел. >> Кто-нибудь знает, откуда растет это явление? >> >> -- >> Oleg Alistratov > > -- > Oleg Alistratov > _______________________________________________ > Kiev-pm mailing list > [email protected] > http://mail.pm.org/mailman/listinfo/kiev-pm -- Denis Sokolovsky _______________________________________________ Kiev-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/kiev-pm
