my @employees; # Defined elsewhere as array of Employee objects
my $effect = Effect->new;
$effect->set( salary => 1.02, '*' );
$_->apply_effect( $effect ) for @employees;
####
my @employees; # Defined elsewhere as array of Employee objects
$_->salary( $_->salary() * 1.02 ) for @employees;
####
my $effect = Effect->new( [ salary => 1.02, '*' ] );
####
my @employess; # Defined elsewhere
my $effect = Effect->new(
[ salary => 1.02, '*' ],
[ frobnitz => 1.5, '+' ],
);
$_->apply_effect( $effect ) for @employees;
####
my @employees; # Defined elsewhere
for (@employees) {
$_->salary( $_->salary() * 1.02 );
$_->frobnitz( $_->frobnitz + 1.5 );
}
# Or if you want to keep closer to the old code and
# live with O(2n) . . .
$_->salary( $_->salary() * 1.02 ) for @employees;
$_->frobnitz( $_->frobnitz + 1.5 ) for @employees;
####
my $do_operation; # Defined elsewhere, possibly from user input
my $by_ammount; # Also from user
my @employees; # Also defined elsewhere
my $op =
$do_operation eq 'add' ? '+' :
$do_operation eq 'mult' ? '*' :
# And so on
;
my $effect = Effect->new( [ salary => $by_ammount, $op ] );
$_->apply_effect( $effect ) for @employees;