in reply to Re^2: shift on a tied array leads to strange results
in thread shift on a tied array leads to strange results

As Corion pointed out, Tie::File is not designed for concurrent access by multiple processes. It builds an index to the lines of the file in memory as it traverses the file and uses that index to find the lines if it has to revisit them. Shifting a line from the front of the file causes the entire file to be rewritten.

If one process rewrites the file, the index held by the other process will be conpletely invalidated.

Basically, "Don;t do that!".

If you would care to describe the problem you are trying to solve (probably as a new question), then you will probably get good suggestions as to modules or code with which to solve it.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco.
Rule 1 has a caveat! -- Who broke the cabal?
  • Comment on Re^3: shift on a tied array leads to strange results