in reply to Re^5: Check if array is null
in thread Check if array is null

That's interesting! It seems defined returns true if there once was data in the array.

my @array = (); print defined(@array)?1:0, $/; # 0 print scalar(@array)?1:0, $/; # 0 push(@array, 'bla'); pop(@array); print defined(@array)?1:0, $/; # 1 print scalar(@array)?1:0, $/; # 0 undef(@array); print defined(@array)?1:0, $/; # 0 print scalar(@array)?1:0, $/; # 0

Replies are listed 'Best First'.
Re^7: Check if array is null
by Limbic~Region (Chancellor) on Oct 06, 2004 at 17:20 UTC
    ikegami,
    That makes sense to me (DWIM). If I create a scalar $foo initially as 'bar' and then change it to '', it is an empty string but it is still defined. If on the other hand, I undef $foo it should no longer be defined. Just change the sigil - though it has been deprecated for arrays and hashes as has been noted.

    Cheers - L~R