If you have already loaded the data into a hash structure, why would you need to seek back into the file and read it again? (Why not just work with the data in the hash?)

Why are you still asking the question before trying something on your own? Or, if you have tried something, why did you not show that to us?

If you are reading the data one "record" at a time (as suggested in the previous thread), you can keep track of the byte offsets at the start of each record (offset to first record is 0, offset to second record = length of first record, and so on). If you read the file line-by-line instead, you can store the byte offsets at the beginning of each line. In either case, the byte offsets should probably be values in a hash that are keyed by whatever indexing string will be used to choose a location in the file.

Then, if you really do need to go back to a specific location in the file, use seek() with the appropriate byte offset. Naturally, if your goal is to write back to the file (changing its contents at specific locations), things will be more complicated, and you probably just want to rewrite the whole file from your initial hash structure that stores all the file data.


In reply to Re^3: Reading selected portion of a data file by graff
in thread Reading selected portion of a data file by Anonymous Monk

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.