Thanks, Chris, Bart, and Paul. Got it solved:
if ( scalar @ARGV > 0 )
{ @testList = @ARGV;
}
if ( $level =~ m/^1.*/ )
{ push @testList, @originalTopPagePlusFlack;
}
elsif ( $level =~ m/^2.*/ )
{ push @testList, @anotherTopPagePlusFlack;
}
elsif ( scalar @ARGV == 0 ) # still feels funny
{ @testList = @basicTopPage;
}
elsif ( $level =~ m/^0.*/ ) # 0
{ push @testList, @basicTopPage;
}
Here's what it originally looked like (and I should have put it in the
original post).
if ( scalar @ARGV > 0 )
{ @testList = @ARGV;
}
if ( $level == 1 )
{ push @testList, @originalTopPagePlusFlack;
}
elsif ( $level == 2 )
{ push @testList, @anotherTopPagePlusFlack;
}
elsif ( scalar @ARGV == 0 )
{ @testList = @basicTopPage;
}
elsif ( $level != '' ) # 0 (or anything not 2)
{ push @testList, @basicTopPage;
}
The thing that was messing me up was changing the first two tests and
failing to change the last one.
Maybe I should go back to teaching English for a living.
I wrote
> I have some code that looks like this:
>
> if ( int( $level ) == 1 )
> { push @testList, @originalTopPagePlusFlack;
> }
>
> When it runs with an empty string in $level, (using strict) I get this
> warning:
>
> ----------------
> Argument "" isn't numeric in int at autohits.pl line 352 (#1)
> (W numeric) The indicated string was fed as an argument to an operator
> that expected a numeric value instead. If you're fortunate the message
> will identify which operator was so unfortunate.
>
> Argument "" isn't numeric in numeric ne (!=) at autohits.pl line 352 (#1)
> ----------------
>
> I've tried using index() and an RE instead of the numeric compare, but
> those give me nearly the same warning. (??) So I am wondering how to get
> at a value that may be either numeric or an empty string.
--
Joel Rees <[EMAIL PROTECTED]>