use strict; use warnings; use feature 'say'; no autovivification; use Data::Dump qw/pp/; my @ary; pp exists $::{non}; pp exists $::{other}; pp exists (&non) ; push @ary, exists (&non) ; say scalar(@ary) #### 1 # *non exists after compilation of &non "" # *other doesn't exist () # sub &non doesn't exist but empty list returned 0 # @ary has consequently no elements #### 1 "" "" 1