<div dir="ltr">Ваня, привет. Такой итератор подойдет? :))<div><br></div><div><pre style="color:rgb(51,51,51)"><span class="" style="font-weight:bold">use</span> <span class="" style="font-weight:bold">strict</span>;
<span class="" style="font-weight:bold">use</span> <span class="" style="font-weight:bold">warnings</span>;

<span class="" style="color:rgb(112,113,131)">{</span>
    <span class="" style="font-weight:bold">package</span> <span class="" style="font-weight:bold">MyFnIter</span>;
    <span class="" style="font-weight:bold">sub</span> <span class="" style="font-weight:bold">OPEN</span> <span class="" style="color:rgb(115,136,214)">{</span>
        <span class="" style="font-style:italic">my</span> <span class="" style="color:rgb(144,145,131)">(</span>$<span class="">obj</span>, $<span class="">fh</span><span class="" style="color:rgb(144,145,131)">)</span> = @<span class="" style="text-decoration:underline"><span class="">_</span></span>;
        $<span class="">obj</span>-><span class="" style="color:rgb(144,145,131)">{</span>data<span class="" style="color:rgb(144,145,131)">}</span> = $<span class="">fh</span>;
    <span class="" style="color:rgb(115,136,214)">}</span>
    <span class="" style="font-weight:bold">sub</span> <span class="" style="font-weight:bold">PUSHED</span> <span class="" style="color:rgb(115,136,214)">{</span>
        <span class="" style="font-style:italic">my</span> <span class="" style="color:rgb(144,145,131)">(</span>$<span class="">class</span><span class="" style="color:rgb(144,145,131)">)</span> = @<span class="" style="text-decoration:underline"><span class="">_</span></span>;
        bless <span class="" style="color:rgb(144,145,131)">{}</span>, $<span class="">class</span>;
    <span class="" style="color:rgb(115,136,214)">}</span>
    <span class="" style="font-weight:bold">sub</span> <span class="" style="font-weight:bold">FILL</span> <span class="" style="color:rgb(115,136,214)">{</span>
        <span class="" style="font-style:italic">my</span> <span class="" style="color:rgb(144,145,131)">(</span>$<span class="">obj</span>, $<span class="">fh</span><span class="" style="color:rgb(144,145,131)">)</span> = @<span class="" style="text-decoration:underline"><span class="">_</span></span>;
        <span class="" style="font-weight:bold">if</span><span class="" style="color:rgb(144,145,131)">(</span>defined<span class="" style="color:rgb(112,152,112)">(</span>$<span class="">obj</span>-><span class="" style="color:rgb(144,115,115)">{</span>buf<span class="" style="color:rgb(144,115,115)">}</span><span class="" style="color:rgb(112,152,112)">)</span><span class="" style="color:rgb(144,145,131)">)</span> <span class="" style="color:rgb(144,145,131)">{</span>
            undef $<span class="">obj</span>-><span class="" style="color:rgb(112,152,112)">{</span>buf<span class="" style="color:rgb(112,152,112)">}</span>;
            <span class="" style="font-weight:bold">return</span>;
        <span class="" style="color:rgb(144,145,131)">}</span>
        <span class="" style="font-weight:bold">else</span><span class="" style="color:rgb(144,145,131)">{</span>
            $<span class="">obj</span>-><span class="" style="color:rgb(112,152,112)">{</span>buf<span class="" style="color:rgb(112,152,112)">}</span> = <span class="" style="color:rgb(112,152,112)">(</span>$<span class="">_</span><span class="" style="color:rgb(144,115,115)">[</span><span class="" style="font-weight:bold">0</span><span class="" style="color:rgb(144,115,115)">]{</span>data<span class="" style="color:rgb(144,115,115)">}</span><span class="" style="color:rgb(112,152,112)">)</span>-><span class="" style="color:rgb(112,152,112)">()</span>;
            <span class="" style="font-weight:bold">return</span> $<span class="">obj</span>-><span class="" style="color:rgb(112,152,112)">{</span>buf<span class="" style="color:rgb(112,152,112)">}</span>;
        <span class="" style="color:rgb(144,145,131)">}</span>
    <span class="" style="color:rgb(115,136,214)">}</span>
<span class="" style="color:rgb(112,113,131)">}</span>

<span class="" style="font-style:italic">my</span> $<span class="">fn</span> = <span class="" style="font-weight:bold">sub</span> <span class="" style="color:rgb(112,113,131)">{</span> rand <span class="" style="color:rgb(112,113,131)">}</span>;
open <span class="" style="font-style:italic">my</span> $<span class="">iter</span>, <span class="" style="color:rgb(102,102,102)">"<:via(MyFnIter)"</span>, $<span class="">fn</span>;

<span class="" style="font-weight:bold">while</span><span class="" style="color:rgb(112,113,131)">(</span><span class="" style="font-style:italic">my</span> $<span class="">val</span> = <$<span class="">iter</span>><span class="" style="color:rgb(112,113,131)">)</span> <span class="" style="color:rgb(112,113,131)">{</span>
    print <span class="" style="color:rgb(102,102,102)">"$val\n"</span>;
<span class="" style="color:rgb(112,113,131)">}</span></pre></div></div><div class="gmail_extra"><br><div class="gmail_quote">2 февраля 2016 г., 23:13 пользователь Evgeniy Vansevich <span dir="ltr"><<a href="mailto:evgeniy@just4i.ru" target="_blank">evgeniy@just4i.ru</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div> зачем?.. Потом ищи-свищи какой умник коде переопределил readline.</div><div>Раскалённой кочергой за это надо<img src="cid:smile21"></div><div> </div><div>02.02.2016, 23:00, "Mons Anderson" <<a href="mailto:mons@cpan.org" target="_blank">mons@cpan.org</a>>:</div><div class="HOEnZb"><div class="h5"><blockquote type="cite"><p><$var> - это readline<br><br>BEGIN{<br>    *CORE::GLOBAL::readline = sub { ... };<br>}<br><br><span></span></p></blockquote></div></div><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br></div>