Mark Henry wrote:

> Hi All,
> 
> Anyone know if it's possible for the return/exit value of a script, in the
> event of success, to be something other than 0?
> 
> I want to call, from a shell script, a perl script that determines a
> certain
> record ID from a database.  When the ID has been obtained, the script
> would exit, and the calling shell script would receive the returned value.
> 
> The 'return' command doesn't allow this - I've thought of setting an env
> variable - not sure how to export it from perl so the environment sees it.
> Would like to get plan A to work first though..
> 

exit with the status you want or set $? inside END. for example:

#!/usr/bin/perl -w

use strict;

#--
#-- x.pl - does absolutely nothing except handling 10 to the shell
#--
exit 10;

#--
#-- or you could:
#--
=item samething:
END{$?=10}
=cut

__END__

and then in another script:

#!/usr/bin/perl -w

use strict;

#--
#-- y.pl - see what x.pl returns
#--
print system('x.pl') >> 8,"\n";

__END__

prints:

10

the '>> 8' portion removes the lower 8 bits of the returned 16 bit word. 
since most os use 16 bit word, your exit value should be 255 or less so if 
you do:

exit 12345;

you might not get back what you expect. your os might have larger word size 
but Perl might decided to use 16 so it's better to keep it down. 

david

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to