sub trigger{print "Triggered: ",map {defined $_ ? " $_" : 'UNDEF'}@_,"\n"} #### # rest of the code as before.. print "\tclearing with undef \@arr:\n" and undef @arr; print "\tSetting list:\n" and @arr = qw(a); print "\tclearing with \@arr=undef:\n" and @arr=undef; print "\tSetting list:\n" and @arr = qw(a); print "\tclearing with \@arr=():\n" and @arr=(); __OUT__ clearing with undef @arr: Triggered: Arraytrigger=ARRAY(0x6ab224) Setting list: Triggered: Arraytrigger=ARRAY(0x6ab224) Triggered: Arraytrigger=ARRAY(0x6ab224) 0 a clearing with @arr=undef: Triggered: Arraytrigger=ARRAY(0x6ab224) Triggered: Arraytrigger=ARRAY(0x6ab224) 0UNDEF Setting list: Triggered: Arraytrigger=ARRAY(0x6ab224) Triggered: Arraytrigger=ARRAY(0x6ab224) 0 a clearing with @arr=(): Triggered: Arraytrigger=ARRAY(0x6ab224) #### my $ref = \$arr[0]; print "\tsetting by reference:\n" and $ref=11; __OUT__ setting by reference: #### print "\@arr [@arr]\n";