|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Babanov 2:5020/1609.69 22 Aug 2001 13:11:13 To : Renat Araslanow Subject : Re: sub inline -------------------------------------------------------------------------------- Юґullo Renat! RA> идея в том что $type во время исполнения приобретает значения из RA> заранее ожидаемого диапазона. и эти значения надо квалифицировать для RA> дальнейшего использования в виде цифр, т.е. таких конструкций как sub RA> XXX() {1-9} будет несколько. при этом эти субы подставляются инайново RA> (нет затрат на вызов суба) но с одной оговоркой они должны вызываться RA> без '&'. вот я и спрашиваю: можно ли разименовать и вызвать функцию RA> представленную symbolic reference без использования '&'. ниже более RA> коректный пример RA> #!perl RA> sub AREA() {2} RA> sub MAREA() {3} RA> sub KAREA() {4} RA> for my $type ('area','marea','karea') RA> { RA> my $z=&{uc $type}; RA> print $z; RA> } Ага, теперь понятно: тебе надо чтобы &$sub не была символьной ссылкой, так? Тогда можно сделать так: >>>>>>> use Benchmark; sub AREA() {2} $type = 'area'; $sub = uc $type; timethis 1000000, 'my $z = &$sub'; $s = "*".uc($type)."{CODE}"; $sub = eval $s; timethis 1000000, 'my $z = &$sub'; >>>>>>> Во втором случае вызовы ~ в два раза быстрее. CYa!!! ЪДВїЪДВВВДДДщщъъ ЪДВВВДї ЪїЪДВДДДДДДДДщщъъ ЪДДДД 2:5020/1609.69 ДДДї іВіАґДЕ ґBabanov іВі ґВі іАґВіST BERSERKER і babanov@earthlink.net і ... Еще наше поколение будет жить при Виагре! [предп. из писем Ильича к HКК] --- * Origin: Our governor can beat up your governor! (2:5020/1609.69) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/47023b83f698.html, оценка из 5, голосов 10
|