> -----Original Message-----
> From: Mr. Shawn H. Corey [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, 07 June, 2006 07:16
> To: [email protected]
> Subject: Re: reading Perl syntax
>
>
> On Tue, 2006-06-06 at 22:23 -0500, [EMAIL PROTECTED] wrote:
> > 46: $self->{file} = $args->{file};
>
> This is the line were $self->{file} is set to undef.
>
> > 48: $self->_read_file($self->{file});
> >
> > ** => 214: my $file = shift;
>
> And here $file is set to $self->{file}, which is undef
Merely referencing a key in a hash sets it into the hash, though with a
value of undef. A good idea is to check whether it exists in the hash:
if (exists $self->{file}){
# do something about it...
}
Then, if it exists, check for a value:
if (exists $self->{file}){
if ($self->{file} ne undef){
# do something about it...
}
}
Or, if it exists, check for a value other than undef, 0, "" (empty string):
if (exists $self->{file}){
if (defined $self->{file}){
# do something about it...
}
}
There are a million ways to write this out in code, but if a piece of data
is crucial to the smooth operation of your application, you need to check
that it fits your validation expectations before trying to reference it.
Peace -
Ron Goral
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>