#!/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__
####
All scalars defined and non-empty
empty
not defined
####
All scalars defined and non-empty
'$baz' empty
'$bar' not defined