Austin Hastings pondered:

my $outfh = all(@input_handles);
while (<$outfh>) print;
No. Apart from the bug (leaving off the braces around the C<print>...spot
the C hacker! ;-), this reads from each of the @input_handles and returns
a conjunction of the values that were read. The print then serializes the
conjunction and prints it. But serialization of a conjunction probably
involves putting an "all(...)" around its states.
You'd get *closer* to the desired behaviour with:

  my $outfh = any(@input_handles);
  while <$outfh> { print; }

because the serialization of a disjunction is just the list of
states. However, junctions don't guarantee the order of their
states so your interleaving might be messed up. Moreover, they
*do* guarantee uniqueness of their states, so any lines that
happened to be identical in two or more files would appear only
once. :-(

What you want here is probably just:

	print zip �readline� @input_handles;

	
> Do junctions know about the origins of their components?

No.


Is "preserving order" a meaningful concept?
No.


(Especially in light of entanglement, which will require origin
> info if it is to be added as an external module.)

Junctions aren't quantum mechanical, so this doesn't apply.

Damian

Reply via email to