<HTML><BODY>Подытожу - можно использовать замыкание:<br><br><p>sub make_once {<br> my ($sub) = @_;<br> my $cnt = 0;<br> sub { goto $sub unless $cnt++ }<br>}</p><p># Как использовать:</p><p>*{once} = make_once(sub{ print "ONCE: @_\n" });</p><p>for (3..10) {<br> once($_);<br>};<br>once();</p><br><br><br>Пятница, 7 февраля 2014, 23:27 +04:00 от Андрей Асякин<asan999@gmail.com>:<br>
<blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
<div id="">
<div class="moz-cite-prefix">Если не секрет, зачем?) Подумалось про
твигги, если он, то можно сделать как то так:<br>
<br>
use common::sense;<br>
<br>
sub init {<br>
say 42;<br>
}<br>
<br>
sub app {<br>
init();<br>
eval q|<br>
sub app {<br>
say "[500, [], [$_[0]]]";<br>
}<br>
|;<br>
die $@ if $@;<br>
<br>
&app;<br>
};<br>
<br>
app($_) for (1..3);<br>
<br>
</div>
<blockquote cite="mid:CAE1cJgYN9ZQVAwGNuaZjShby0MbCnTZCSPLhO=1O2MVQzzj-rg@mail.gmail.com" type="cite"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">7 февраля 2014 г., 20:19 пользователь
Харпалёв Иван <span dir="ltr"><<a moz-do-not-send="true" href="/compose/?mailto=mailto%3aivan.kharpalev@gmail.com" target="_blank">ivan.kharpalev@gmail.com</a>></span>
написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Доброго времени суток, могучий MoscowPM;
<div><br>
</div>
<div>Скажите, есть ли какие-то решения, чтобы кусок кода
выполнялся ровно один раз? ( за время жизни программы)</div>
<div><br>
</div>
<div>например</div>
<div>
<br>
</div>
<div>for (...) {</div>
<div> do_once { code to be executed only once };</div>
<div> ....</div>
<div>}</div>
<div>do_once { some_more() };</div>
<div><br>
</div>
<div>Или как такое посоветуете делать?</div>
<div>Чтобы по caller определялось, место вызова и куда-то
запоминалось или ещё как-то?</div>
<div><br>
</div>
<div>С уважением</div>
<div><br>
</div>
</div>
<br>
--<br>
Moscow.pm mailing list<br>
<a moz-do-not-send="true" href="/compose/?mailto=mailto%3amoscow%2dpm@pm.org" target="_blank">moscow-pm@pm.org</a>
| <a moz-do-not-send="true" href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
-- <br>
Moscow.pm mailing list<br>
<a href="/compose?To=moscow%2dpm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</div>
</blockquote>
<br>
<br>-- <br>Илья Винокуров<br></BODY></HTML>