in reply to Uninitialised value in list assignment

The problem is that when $ENV{'Z' . uc $foo} contains only the string "1", then

split /,/, $ENV{'Z' . uc $foo}, 2
returns a list of 2 elements (due to the last argument to split) whose last element must necessarily be undefined. The assignment of this undefined value to $ENV{'Z' . uc $foo} triggers the warning.

the lowliest monk