http://qs321.pair.com?node_id=1230215


in reply to Re^8: How can I read DATA in parent and child?
in thread How can I read DATA in parent and child?

Sorry to reply this late, but your result is different from what I wanted to achieve.

Your parent and child read the same DATA once meaning: Every entry is read by either parent or child.

I want to read DATA independently. Parent and child in my real world application need to have the same set of information to do different things with it.


s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
+.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e

Replies are listed 'Best First'.
Re^10: How can I read DATA in parent and child?
by tybalt89 (Monsignor) on Feb 20, 2019 at 10:06 UTC

    See Re^3: How can I read DATA in parent and child? fdopen doesn't help, it's still the same shared seek pointer. *nix doesn't do what you want. If you want to do reads on handles, try this instead.

    #!/usr/bin/perl # https://perlmonks.org/?node_id=1230099 use strict; use warnings; open my $x, '<', \do { local $/; <DATA> }; my $who = fork() ? 'p' : 'c'; while( <$x> ) { print "$who $_"; } 1 while wait > 0; __DATA__ a b c d e
Re^10: How can I read DATA in parent and child?
by hippo (Bishop) on Feb 20, 2019 at 09:09 UTC
    Parent and child in my real world application need to have the same set of information to do different things with it.

    Is this an XY Problem? The order of operations should then be:

    1. Read and store all the data
    2. Fork
    3. Process all the already-read data in different ways