<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>