my $amax; for ($amax=1; exists $Person::{"address_$amax"}; $amax++) {} $Person::addresses = sub{\@_}->( map { no strict 'refs'; ${"Person::address_$_"} } 1..$amax-1 );