It is difficult for me to bottom post as I am using Lnotes. Sorry.
ok so yes In general, I thought:
SHELL 0= true
Perl 0 = false
SHELL 1 = false
Perl 1 = true
what do you mean "non zero is false in this context." b/c in general I
thought as above. Yes it is opposite in Perl as above.
Finally, when do I use my $exval = $? >> 8 as opposed to my $exval = $? >>
127. And what is the diff?
almost!
thanks
"Wiggins
d'Anconia"
<[EMAIL PROTECTED] To
.org> [EMAIL PROTECTED]
cc
02/28/2005 10:09 Perl Beginners <[email protected]>
AM Subject
Re: return code
Please bottom post...
[EMAIL PROTECTED] wrote:
> ok so $? states CHILD_ERROR or last status returned by the last ` ....`
> command.
> $! states yields the current value of errno
>
> in shell if I say it will give me a true or false value.
>
> cat /tmp/foo
> if [ $? -eq 0 ]
> then
> echo yes command succeeded
> else
> echo no.
> fi
>
> In Perl if I wanted to represent this I would use $! for any notification
> of any failures such as opening a file. But when I add the code in red
> specifically $? >> 8, I get a exit value of 2 and when I change it to
$?
>
>>>127 I get a exit value of 0. I want to understand and know the code to
>
> get a true (1) or false (0) value.
> thanks,
>
0 is true and non-zero is false in this context, it is opposite of Perl,
is that the confusion?
>
> For this situation assume linect is 3.
>
>
> #!/usr/local/bin/perl -w
>
> use strict;
> use strict 'subs';
>
> my $file = qq(/tmp/mbfree);
> open (F, "+<$file") or die "unable to open file $file $!\n";
>
> foreach (<F>) {
> if ( $. < 2 ) {
> last;
> } else { print "linect is NOT less than 2: $. \n";
> system ("cat /tmp/used");
> my $exval = $? >> 8;
> print "print exit value: $exval\n";
> if ( $exval == 0 ) {
> print "false, file open cat did not happen\n";
Wrong statement, if ($exval == 0) is testing for true not false.
> }else{
> exit;
> }
> }
> }
> print "line count is: $. \n";
> close (F);
>
>
> derek,
>
>
Did this get it?
http://danconia.org
>
[snip for chris ;-)]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>