sub increment { my ( $number, $incval ) = @_; return sub { $number += $incval; return $number; } } my $action = increment( 1, 2, 'plus', 'tons', 'more', 'arguments' ); while ( my $result = $action->() ) { print "$result\n"; }