Inline-Octave
view release on metacpan or search on metacpan
croak "Problem binding $oct_funname to $perl_funname: $@" if $@;
$octave_object->{FUNCS}->{$oct_funname}= $perl_funname;
return;
}
sub start_interpreter
{
my $o = shift;
# check if interpreter already alive
return if $octave_object->{OCTIN} and $octave_object->{OCTOUT};
use IPC::Open3;
use IO::File;
my $Oin = new IO::File;
my $Oout= new IO::File;
my $Oerr= new IO::File;
my $pid;
eval {
$pid= open3( $Oin , $Oout, $Oerr, $octave_object->{INTERP} );
{
my $o = shift;
my $cmd= shift;
my $marker= $octave_object->{MARKER};
my $Oin= $octave_object->{OCTIN};
my $Oerr= $octave_object->{OCTERR};
my $select= $octave_object->{SELECT};
my $pid = $octave_object->{octave_pid};
croak "octave interpreter not alive" unless $Oin and $Oerr;
# set SIGnals here, and they will be reset to what the
# user set them to outside
local $SIG{CHLD}= \&reap_interpreter;
local $SIG{PIPE}= \&reap_interpreter;
# print STDERR "INTERP: $cmd\n";
# $Oin = "\n\n$cmd\ndisp('$marker');fflush(stdout);\n";
# $pid->pump() while length $Oin;
print $Oin "\n\n$cmd\ndisp('$marker');fflush(stdout);\n";
( run in 1.700 second using v1.01-cache-2.11-cpan-39bf76dae61 )