Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: How not to pass undef variables

by count0 (Friar)
on Jan 10, 2002 at 22:02 UTC ( #137787=note: print w/replies, xml ) Need Help??

in reply to How not to pass undef variables

From the very first assignment to @emails, you have no idea how many, if any, elements it has.

A good general rule to follow is that when you don't know if there is a value, test it! ;)

The @emails = grep... statement doesn't need any input, so you're safe there.
The foreach... doesn't need @emails to have anything in it, so again, that's ok.

When you get down to the split(), you have a problem. If @newemails has no elements in it.. perl will complain, and $email and $domain will be undefined.

The simplest way to deal with this situation is to test if @newemails has any elements. Wrap any code that depends on it containing something, into that test:
if (scalar @newemails) { my ($email, $domain) = split(/\@/, $newemails[0]); mail($newemails[0], $domain); }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://137787]
and monks are getting baked in the sun...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (11)
As of 2018-06-25 20:01 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (128 votes). Check out past polls.