in reply to passing a file content from one process to another process.

Normally you will spend more time waiting for the disk delivering your data than parsing it. So the answer to question 2 would be that you shouldn't care. Better optimize for readability and maintainability

Parsing is a wide field. It might mean searching for a few strings or parsing a programming language like perl. I assume here that your parsing needs are rather simple

In that case you wouldn't need two processes. You would use two Finite-state_machines working in parallel:

my $state1=0; my $state2=0; while ($record= $fp->getline()) { $state1= statemachine1($state1,$record); $state2= statemachine2($state2,$record); }# end of while

Here is a short description and more links about finite state machines: Re^3: How to parse a text file.

UPDATE: Read your question again and if that file is just a long list of "records", i.e. lines without any structure that connects two or more lines, you don't even need a finite state machine. Just use the two subroutines. You do know about the split() function? Very helpful to split a line into its components