sub _runexternal { my ($shelf,$args) = @_; my $dbg = \$args->{'debug'} ; my $l=\$args->{'line'} ; my $line = ${$l} ; #$line =~ s/\&/\\\&/smx ; if ( not ( $line ) ) { return ('255')}; my @response = (); my @errors = (); my $childpid = open3(\*CHLD_IN,\*CHLD_OUT, \*CHLD_ERR, $line); use Symbol 'gensym'; #$err = gensym; if ( ${$dbg} ) { while () { $shelf->message({msg=>"[_runexternal]$_",debug=>${$dbg},v=>'vvvvvvv',}); push @response,$_; } } else { @response = ; } @errors = ; waitpid $childpid,0 or croak $ERRNO; my $exitcode = $CHILD_ERROR >> ACHT; push @response,$exitcode; close CHLD_OUT or croak $ERRNO; close CHLD_ERR or croak $ERRNO; foreach my $r (@response) { $shelf->message({msg=>"[_runexternal]$r",debug=>${$dbg},v=>'vvvvvvv',}); } return (@response); } # end sub _runexternal