Astro-IRAF-CL
view release on metacpan or search on metacpan
else{
croak 'You must specify an IRAF command to execute';
}
my $timeout = defined $params{'timeout'} ? $params{'timeout'} : undef;
my $error_handler = $params{'error_handler'} || undef;
my $warning_handler = $params{'warning_handler'} || undef;
my $death_handler = $params{'death_handler'} || undef;
my $timeout_handler = $params{'timeout_handler'} || undef;
my ($q_timeout,$q_eof,$q_error,$q_warning,$not_available) = (0,0,0,0,0);
my @output;
foreach my $command (@commands){
$self->_add_to_command_history($command);
if (length($command) > 2047){
my $length = length($command);
croak "The length of the command $command is $length, this exceeds the maximum allowed CL command buffer size of 2047";
[eof => sub {&eof_handler($self,$command,
$death_handler);
$q_eof = 1; exp_continue}],
'-re','^Warning:',sub {&cl_warning_handler($self,$command,
$warning_handler);
$q_warning = 1; exp_continue},
'-re','^ERROR:',sub {&cl_error_handler($self,$command,
$error_handler);
$q_error = 1; exp_continue},
'-ex','No help available for',sub{print STDERR "No help available for $helpname\n";
$not_available = 1;
},
'-re',$possible_prompt,sub{$self->_register_package($command)},
'-re',$self->{'cl_prompt'});
next if ($q_timeout || $q_error || $q_eof || $not_available);
my $output = $t->exp_before();
my @lines = split /\n/,$output;
foreach my $line (@lines){
chomp $line;
$line =~ s/[\000-\037\x80-\xff]//g; # Remove any crud from the output.
push @output,$line if ($helpfile || $line =~ m/(\d|\w)/);
}
( run in 0.236 second using v1.01-cache-2.11-cpan-55f5a4728d2 )