+ if ( ( defined($interact) && $interact )
+ || ( defined($self->{interact}) && $self->{interact} ) ) {
+ print join(' ', @cmd), "\n";
+ unless ( &_yesno ) {
+ $self->{errstr} = "User declined";
+ return 0;
+ }
+ } else {
+ $flags .= 'qB';
+ }
+ my($reader, $writer, $error ) =
+ ( new IO::Handle, new IO::Handle, new IO::Handle );
+ $writer->autoflush(1);# $error->autoflush(1);
+ my $pid = open3($writer, $reader, $error, @cmd );
+ waitpid $pid, 0;
+ if ( $? >> 8 ) {
+ chomp(my $errstr = <$error>);
+ $self->{errstr} = $errstr;
+ 0;
+ } else {
+ 1;
+ }