The procedural method: $balance = add_to_acct($balance, $amount); The OOP method: my $acct_obj = new BankAccount($initial_balance); $acct_obj->add_to_acct($amount); #### add_value($x); add_value($y); add_value($z); my @all_values = get_all_values; #### @all_values = add_value($x, @all_values); # gives the list to add to, and takes the newly added list # as a return value @all_values = add_value($y, @all_values); ... # Now anytime you inspect @all_values, it has the currently # added elements.