I often find myself having to check a long list of variables for defined- and non-zero-ness. For debugging purposes it would have been helpful to print the name of the variable that were undef or empty.
#!/usr/bin/perl use strict; use warnings; ####################################################### # Input: list of scalars. # Return: 1 if all scalars are defined and non-empty, # otherwise undef. sub defnz { ####################################################### for my $item (@_) { if (!defined($item)) { print STDERR "not defined\n"; return; } elsif ($item eq '') { print STDERR "empty\n"; return; } } print STDOUT "All scalars defined and non-empty\n"; return 1; # all items in list defined and non-empty } my ($foo,$bar,$baz) = ("FOO","BAR","BAZ"); defnz($foo,$bar,$baz); ($foo,$bar,$baz) = ("FOO","BAR",""); defnz($foo,$bar,$baz); ($foo,$bar,$baz) = ("FOO",undef,""); defnz($foo,$bar,$baz); __END__
I would want it to output:All scalars defined and non-empty empty not defined
Is there a way to access variable names like this?All scalars defined and non-empty '$baz' empty '$bar' not defined
Best regards,
Andreas
--
In reply to Access variable names by andreas1234567
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |