On Sun, 2 Jan 2005, Siegfried Heintze wrote:
> I am posting this query in beginners instead of beginners-cgi because I
> believe this is a question about the defined statement and not the $q->param
> statement/function.
>
> I'm using this code:
> $q = new CGI;
> my $nUserId = $q->param("userId") ;
>
> I was hoping the defined keyword would tell me if userId was present, but it
> does not seem to be doing that.
>
> How can I make this execute the die statement when userId is missing from my
> get/post parameters?
>
> if (defined $nUserId) {
> $juror_number = $nUserId;
> } else {
> die "No valid ID for User";
> }
I usually just write in a way similar to this:
my $q = new CGI;
my $nUserId = $q->param("userId") or die "No valid ID for User";
Or if I'm feeling less draconian,
my $nUserId = $q->param("userId") or "No valid ID for User";
Which will set $nUserId to "No valid ID for User" if userId isn't
defined. In a lot of cases, this is acceptable, but in your code, maybe
everything falls apart without a userid and it really does need to die.
In any case, I think the '$foo = $bar || "default";' construct is very
useful: it's succinct, clear, and generally does what you want...
--
Chris Devers
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>