my @arr=("jesus","heaven"); { package t; sub NAME () {0}; sub ADDRESS () {1}; print $arr[NAME],$arr[ADDRESS] } print $arr[t::NAME],$arr[t::ADDRESS]; #### > perl -MO=Deparse /tmp/tst.pl sub t::NAME () { 0 } sub t::ADDRESS () { 1 } my(@arr) = ('jesus', 'heaven'); { package t; print $arr[0], $arr[1]; } print $arr[0], $arr[1]; /tmp/tst.pl syntax OK