#!/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