Astro-IRAF-CL
view release on metacpan or search on metacpan
631632633634635636637638639640641642643644645646647648649650651else
{
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"
;
707708709710711712713714715716717718719720721722723724725726727728729730731
[
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
{
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 )