open(PIPEWRITE, '|./program')
or die "Can't start pipe: $!";
print PIPEWRITE for @array;
close PIPEWRITE
or die "Cant't close pipe: $!";
####
open(PIPEWRITE, '|./program > output');
####
use IPC::Open2;
my $pid = open2(\*RDRFH, \*WTRFH, './program');
print WTRFH @{$mail[0]};
close WTRFH;
waitpid $pid, 0;
my @array = ;
close RDRFH;