modification of passed in array
You may have good reasons to do that but when I'm faced with similar situations I wonder if returning a new version of the array might be better/safer.
#! /usr/perl/bin
use warnings;
use strict;
use Data::Dumper;
sub process_array_ref {
my $initial_array_ref = shift;
my @processed_array;
for my $element (@{$initial_array_ref}){
# do something with element
# validate, normalise, error checking,
# convert to metric, skip, whatever
push @processed_array, sprintf(qq{processed: %s}, $element);
}
return \@processed_array;
}
my $initial_array_ref = ['a','b','c','d','e'];
my $processed_array_ref = process_array_ref($initial_array_ref);
print Dumper($processed_array_ref);
I often find that debugging/maintainance is easier with this approach. YMMV. |