Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: Test if multiple variables are defined

by stroke (Novice)
on Jun 25, 2013 at 14:12 UTC ( #1040604=note: print w/ replies, xml ) Need Help??


in reply to Re: Test if multiple variables are defined
in thread Test if multiple variables are defined

Do either of these perform the check on all the variables and then only execute if they are all defined? Example: $ipaddress is defined, $prefix is defined, $interface is undef. I still want to run the substitution on $ipaddress, $prefix, so effectively have the variables defined state unrelated.

Hence, I think I may need to do it separately?


Comment on Re^2: Test if multiple variables are defined
Re^3: Test if multiple variables are defined
by Eily (Hermit) on Jun 25, 2013 at 14:24 UTC

    Here is the longer version of the same code:

    for ( $ipaddress, $prefix, $interface, $device, $location, $comment ) { defined and s/^\s+|\s+$//g; # or defined ? s/^\s+|\s+$//g : 1; It does the same thing # or even if (defined) { s/^\s+|\s+$//g } ## Edit : and there is # s/^\s+|\s+$//g if defined; ## That one is quite nice. ## Let's just say there's more than one way to do it. }
    So yeah, the instructions inside the block are run on each element, and not the array as a whole.

    If you have to ask though, I'd advise you to go for the long version because it will run just as fast, it's just another way of writing the same thing. Here is another way to do it, which I find easy to read thanks to the next keyword.

    STRING: for( $ipaddress, $prefix, $interface, $device, $location, $com +ment ) { next STRING unless defined; # We skip any element that is not define +d s/^\s+|\s+$//g; }

      Thanks, that's what I was trying to say - run it on each element, not the array as a whole. Words failed me at the time though. And a simple solution - I went for:

      for ( $ipaddress, $prefix, $interface, $device, $location, $comment ) +{ s/^\s+|\s+$//g if defined; }

      Thanks for your wisdom!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1040604]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2014-07-12 16:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (240 votes), past polls