Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: checking values of variables

by toolic (Chancellor)
on Aug 12, 2013 at 14:25 UTC ( #1049130=note: print w/ replies, xml ) Need Help??


in reply to checking values of variables

Instead of declaring 50 variables, you could declare a single hash.

my %params; # some code here which may or may not add keys to %params print "help\n" unless %params;


Comment on Re: checking values of variables
Download Code
Re^2: checking values of variables
by Laurent_R (Parson) on Aug 12, 2013 at 15:39 UTC

    I guess that would not work, because the OP apparently wants to trigger the help function if any of the variables is absent, not if they are all missing.

    So using a hash, it would have to be something like this:

    help() if 22 > scalar values %params; # scalar unnecessary, just to make the context clearer

    But that would not be very robust, for example if the %params may have some elements other that the list of mandatory parameters.

    So an approach more reliable than just counting the hash values would be to test each and every single mandatory param:

    for (qw / server database user password ... initversion /) { help() and last unless (defined $params{$_} and $params{$_}); }

    The exact test on the %params values would depend on how the hash is initialized.

Re^2: checking values of variables
by fishmonger (Pilgrim) on Aug 12, 2013 at 16:03 UTC
    print "help\n" unless %params;

    That does not do what the OP's if conditional does. The OP want's to execute help() if any one of the vars is empty. Your unless test requires ALL vars to be empty.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (18)
As of 2014-10-30 19:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (208 votes), past polls