|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 26 Mar 2002 02:12:31 To : Alexander Osin Subject : Re: это что за шутки? -------------------------------------------------------------------------------- "Alexander Osin" <Alexander.Osin@p1.f1460.n5030.z2.fidonet.org> wrote in message news:1017094171@p1.f1460.n5030.z2.ftn... > Too many arguments for rand at 3.pl line 1, near "10)" > Execution of 3.pl aborted due to compilation errors. > > на простой rand (0, 10) ? > > perl v5.6.0 built for i386-linux > > на perl version 5.005_03 built for i386-freebsd все путем. > > Это из-за пингвиникса или из-за perl 5.6 ? Это из-за Вашего нежелания прочесть документацию. Функция rand вызывается либо без аргументов, либо с одним аргументом. См. perldoc -f rand Однако в версии 5.6 есть отличия в трактовке синтаксиса передаваемых аргументов. Отныне они не могут трактоваться как составное выражение (а в 5.00x могли). Т.е. теперь rand(0,1000) вызывает закономерную ошибку несоответствия числа передаваемых параметров прототипу. А в <=5.00x rand(0,1000) трактовалось как "вызвать функцию rand передав ей в качестве параметра результат составного выражения". Результатом составного выражения является значение последнего из перечисленных выражений (т.е. 1000). Hо и в 5.00x этой ошибки вы не допустили бы, используй, как многократно советовалось, ключ -w. В этом случае интерпретатор Вас честно предупредил бы: Useless use of a constant in void context at -e line 1. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65778c36ed9f.html, оценка из 5, голосов 10
|