Astro-IRAF-CL

 view release on metacpan or  search on metacpan

CL.pm  view on Meta::CPAN

631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
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";

CL.pm  view on Meta::CPAN

707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
           [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.260 second using v1.01-cache-2.11-cpan-55f5a4728d2 )