note
hdb
<p>
I assume that this is a simplified example and that you are trying to understand the issue rather looking for a workaround, but in just in case... you could read the DATA before forking...
</p>
<code>
use strict;
use warnings;
my @data = <DATA>;
my $pid= fork();
die unless defined $pid;
if ($pid == 0) {
print "Start c\n";
for (@data) {
print "c: $_"; sleep 1;
}
print "stop c\n";
}
else {
print "Start p\n";
for (@data) {
print "p: $_"; sleep 1;
}
print "stop p\n";
}
__DATA__
a
b
c
d
e
</code>
<p>I admit that I do not know either what the fork/DATA problem is. If you put in a sleep statement before the loop you can control whether the parent or the child reads the DATA segment but this is not helpful either.</p>
1230099
1230099