andreas1234567 has asked for the wisdom of the Perl Monks concerning the following question:
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
--
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Access variable names
by Roger (Parson) on Sep 01, 2005 at 08:07 UTC | |
by Ovid (Cardinal) on Sep 01, 2005 at 16:44 UTC | |
|
Re: Access variable names
by sk (Curate) on Sep 01, 2005 at 07:30 UTC | |
by andreas1234567 (Vicar) on Sep 01, 2005 at 12:09 UTC | |
|
Re: Access variable names
by gargle (Chaplain) on Sep 01, 2005 at 11:34 UTC | |
|
Re: Access variable names
by traveler (Parson) on Sep 01, 2005 at 15:17 UTC | |
|
Re: Access variable names
by Akhasha (Scribe) on Sep 01, 2005 at 21:24 UTC |