http://www.perlmonks.org?node_id=992452


in reply to Re^2: var comparison
in thread var comparison

If your list of possible values gets long, you could store them as keys of a hash and then check for existence or definedness in the hash.

Replies are listed 'Best First'.
Re^4: var comparison
by nemesisgus (Acolyte) on Sep 08, 2012 at 18:32 UTC

    Yes, that's one of the solutions MidLifeXis proposed and I think it's also considered a Perl "best practice".

      hmm, nobody gave you a code example ?

      DB<100> @option{qw/a b c/}=() => (undef, undef, undef) DB<101> exists $option{a} => 1 #true DB<102> exists $option{d} => "" #false

      but smart-match should be safe as long as you don't forget the quotes.

      Cheers Rolf

        Nice hash slice, thanks!

        Just let me polish up your code so other newbies don't get confused:

        my %option; @option{qw/a b c/}=(); # my %option = ( # 'a' => undef, # 'b' => undef, # 'c' => undef # ); exists $option{a} and print 'true'; exists $option{d} or print 'false';

        PS: what the h**l is DB <...> ?