Olivier Regnier wrote:
> Hello,
> 
> I written a small script in sh :
> # Downloading doc files
> echo "===> Downloading doc files"
> /usr/bin/csup $doc_supfile
> RETVAL=$?
> if [ $RETVAL != 0 ]; then
>    echo "abort"
>    exit 0
> fi
> 
> I want to rewritte this code in perl script.
> 
> my $retval=0;
> my $doc_supfile="/etc/doc-supfile";
> 
> # Downloading doc files
> print "===> Downloading doc files\n";
> system("/usr/bin/csup $doc_supfile
> if (! $retval) {
> print "abort";
> exit;
> }
> I don't know what happened with retval but that doesn't work correctly.
> 
> Can you help me please ?
> 
> Thank you :)

Olivier,
        Why are you doing this all in perl? Doesn't Bourne shell suffice :)?

Try:

====================================
#!/usr/local/bin/perl -w

use strict;

local $?=0;

my $doc_supfile="/etc/doc-supfile";
print "===> Downloading doc files\n";
system "/usr/bin/csup $doc_supfile";

my $retval = $?; # make sure to grab exit val right after execution;
                 # this can shoot you in the foot if you do it later on
                 # down the line, and another command has been executed
                 # behind the scenes.. Also read perldoc -f system for
                 # more details on return codes because $retval doesn't
                 # necessarily match the exit code that your shell may
                 # see.

unless($retval) {
        print "CVsup aborted\n";
        exit $retval;
}
====================================

See perldoc perlvar.

Cheers,
-Garrett
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to