This sounds like the perfect situation for a closure
use strict; sub nextline { my $fh = shift; return sub { return scalar <$fh>; } } open(FOO, "somefile.txt") or die("Doh - $!"); my $nl = nextline(*FOO{IO}); print $nl->() for 0..3; close(FOO); __END__ =INPUT foo bar baz quux xxx yy z =OUTPUT foo bar baz quux
Now we have a fly-weight object (tilly's words I think) which will return the next line from the filehandle you initially provided to nextline(). There's loads of info about closures around the Monastery that are well worth the read if you're unsure about them (although having read a bunch of stuff on closures I only clicked recently having read tye's node on Finding all Combinations). You can also do funky stuff like grokking the symbol table and dynamically creating subs, but I think that's better left to a later node.
HTH

broquaint


In reply to Re: need nextline() sub by broquaint
in thread need nextline() sub by mutagen

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.