<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div>А почему для</div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-0" class="mark">sub</span> <span id="misspell-1" class="mark">foo</span>(&$) {<br>    <span id="misspell-2" class="mark">my</span> ($s, $v) = @_;<br>    $s->($v);<br>}</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Вызов </div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new
 roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-3" class="mark">foo</span> <span id="misspell-4" class="mark">sub</span> { <span id="misspell-5" class="mark">print</span> @_ }, "<span id="misspell-6" class="mark">hello</span>\n";</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-7" class="mark">работат</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">И </div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent;
 font-style: normal;"><span id="misspell-8" class="mark">foo</span> { <span id="misspell-9" class="mark">print</span> @_ } "<span id="misspell-10" class="mark">hello</span>\n";</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">работает</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">А<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-11" class="mark">my</span> $<span id="misspell-12" class="mark">print</span> = <span id="misspell-13"
 class="mark">sub</span> { <span id="misspell-14" class="mark">print</span> @_ };<br><span id="misspell-15" class="mark">foo</span> $<span id="misspell-16" class="mark">print</span>, "<span id="misspell-17" class="mark">hello</span>\n";</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Не работает?</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Почему большую функцию не можно вынести отдельно?</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent;
 font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Неужели <span id="misspell-18" class=""><span>придется</span></span> писать</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-18" class="mark">sub</span> <span id="misspell-19" class="mark">foo</span>($$);</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new
 york,times,serif; background-color: transparent; font-style: normal;">Аналогичная ситуация с массивами и <span id="misspell-20" class="mark">хешами</span>:</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-21" class="mark">sub</span> foo(\@\%) {<br>    <span id="misspell-22" class="mark">my</span> ($a, $h) = @_;<br>    <span id="misspell-23" class="mark">print</span> <span id="misspell-24" class="mark">scalar</span> @$a, "\n";<br>}<br><br><span id="misspell-25" class="mark">my</span> @<span id="misspell-26" class="mark">foo</span> = (1, 2);<br><span id="misspell-27" class="mark">my</span> %<span
 id="misspell-28" class="mark">foo</span> = (1 => 2);<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Вот так <span id="misspell-29" class="mark">работате</span>.<br><span id="misspell-30" class="mark">foo</span> @<span id="misspell-31" class="mark">foo</span>, %<span id="misspell-32" class="mark">foo</span>;<br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0,
 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">А так <br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span id="misspell-33" class="mark">foo</span> \@foo, \%<span id="misspell-34" class="mark">foo</span>;</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">не работает.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">А если у меня <span id="misspell-36"
 class="">ссылки</span> на массивы, что что <span id="misspell-37" class=""><span>придется</span></span> их <span id="misspell-38" class=""><span>разыменовывать</span></span> только для вызова?</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="yui_3_7_2_21_1350453180449_299" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Зачем тогда такие прототипы нужны?</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">А если везде использовать в <span id="misspell-35" class=""><span>прототипах</span></span> $, то
 зачем тогда эти все @ и %?<br></div></div></body></html>