in reply to 3 argument opens with pipes & messages

i'm looking for the 3-arg equivalent to the open stmt

There isn't one. See BrowserUK's reply.

and how to use a variable for the "<<" stmt. thanks

Put a space before the <<

my $fh = \*STDOUT; print $fh<<'EOI'; # Fails abc EOI
my $fh = \*STDOUT; print $fh <<'EOI'; # Works abc EOI

Perl think's you're using the left shift operator with a lexical and no space.