On 2/8/10 Mon  Feb 8, 2010  4:56 PM, "Chris Coggins" <cacogg...@cox.net>
scribbled:

> What is the proper syntax for a comparison at the end of a subroutine to
> stop the script if a certain variable is "0" or ''?
> 
> sub routine{
> (get data and process it)
> if $varA = '' || $varA = "0" {
> (stop script, print error message to user)
> }
> else{
> (continue with script)
> }

The scalar values '' and 0 (not in quotes) are 2 of the 3 logically false
scalar values. (The undef value is the third, and an empty array is
another.) If you can accept stopping your program if $varA is undef as well
as '' or 0, then you can simply test the logical value of $varA:

    if( $varA ) {
        # continue with program
    }else{
        exit(0);    # stop program
    }

You can use 'unless' instead of 'if' and swap blocks:

    unless( $varA ) {
        exit(0);
    }else{
        # continue with program
    }

Since exit does not return, you can shorten this:

    unless( $varA ) {
        exit(0);
    }

Or shorten again:

    exit(0) unless $varA;

You can use print() to print a message before terminating. You can also use
die(), which will print its argument and terminate the program:

    die("The variable \$varA does not have a valid value") unless $varA;




-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to