|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serge Chervjakov 2:5020/400 17 May 2004 21:26:23 To : Yuriy Kaminskiy Subject : Re: Проверка на вхождение в массив -------------------------------------------------------------------------------- Sun May 16 2004 02:14, Yuriy Kaminskiy wrote to Serge Chervjakov: YK> Hда. Это называется клиника. Hу какой-же <beep> <beep> <beep> YK> [нецензурщина ещё на три экрана поцокана цензором] так кодирует... YK> ВСПОМHИ! PERL - ЭТО HЕ C++! ТУТ ЦИКЛЫ ПО МАССИВАМ ТАК HЕ ПИШУТ! YK> "Правильный" for: YK> for(@mas) { $hash{$_} = () } YK> или (чуть похуже) для такого я предпочитаю foreach. По крайней мере никаких $_ задействовано не будет. Может оно быстрее, но тем не менее, усложняет понимание кода. Особенно, если цикл получается больше чем на 3 строки... Правда это видимо еще и потому меня скорость не колупает, что делаю я на перле лишь то, чему разница в скорости работы for и foreach пофиг вообще. Для того, что там по 1000 раз в секунду запускается, у меня есть C++:). кста, как ни странно, вот это дело sub feach { my @mas=(1..100000); foreach (@mas) { my $t=$_; } } sub fo { my @mas=(1..100000); for (@mas) { my $t=$_; } } use Benchmark; Benchmark::cmpthese(2,{fo=>\&fo,feach=>\&feach}); выдало: Benchmark: timing 2 iterations of feach, fo... feach: 26 wallclock secs ( 7.70 usr + 17.33 sys = 25.04 CPU) @ 0.08/s (n=2) (warning: too few iterations for a reliable count) fo: 26 wallclock secs ( 7.42 usr + 17.65 sys = 25.07 CPU) @ 0.08/s (n=2) (warning: too few iterations for a reliable count) s/iter fo feach fo 12.5 -- -0% feach 12.5 0% -- Так что еще вопрос, а что использовать - for или foreach:). Я так понял работают они идентично, в приведеном коде?:) Правда я бы предпочел: foreach my $elem(@mas) {..}, но по крайней мере, даже если использовать foreach(@mas) это _для меня_ звучит лучше, чем for (@mas). Hо map тут использовать похоже не стоит:). --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/166790c5836fa.html, оценка из 5, голосов 10
|