sub collect (Int *@nums) { state @data; @data.push(@nums); } # prepopulate it as late as possible: &collect.data.push(get_some_values); # ... # use collect(); my @collected = &collect.data;