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


in reply to Test if multiple variables are defined

Two short ways would be:

defined and s/^\s+|\s+$//g for ( $ipaddress, $prefix, $interface, $dev +ice, $location, $comment );

defined ? s/^\s+|\s+$//g : 1 for ( $ipaddress, $prefix, $interface, $d +evice, $location, $comment );

In the first case you use the fact that and does not execute the second operand if the first one is false. In the second case, test ? instr1 : instr 2; is syntactic sugar for if (test) { instr1; } else { instr2; }. You do have to write a second instruction though, and since Perl doesn't provide a no-op instruction (but you can make one), the 1 in my example can't be omitted.