chrisburel has asked for the wisdom of the Perl Monks concerning the following question:
Hi Perl Monks,
There is a real-world application for this, but I'm going to make it simple for the sake of the example.
Let's say I have an array of characters:
my @chars = qw( a b c ? : ! f g )And I have a function called "getUpperCaseChars" that converts those characters to their uppercase equivalents. But for the punctuation, since it has no uppercase equivalent, it returns an undef for those indices instead:
my @upChars = getUpperCaseChars( @chars ); # @upChars is now ( 'A', 'B', 'C', undef, undef, undef, 'F', 'G' )
Now after I've called getUpperCaseChars(), I can determine which ones did not have uppercase equivalents by doing something like this:
my @charsWithNoUpperCase = @chars[grep { !defined @upChars[$_] } 0..$#upChars];
But readability is low on that, so I've changed it to a foreach:
my @charsWithNoUpperCase foreach my $index ( 0..$#upChars ) { push @charsWithNoUpperCase, $chars[$index] if !defined $upChars[$index]; }
So my question is, is using the array slice significantly more efficient?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Array slice vs foreach and push
by ww (Archbishop) on Nov 10, 2011 at 02:20 UTC | |
by chrisburel (Initiate) on Nov 10, 2011 at 02:37 UTC | |
by ww (Archbishop) on Nov 10, 2011 at 02:41 UTC | |
|
Re: Array slice vs foreach and push
by NetWallah (Canon) on Nov 10, 2011 at 06:41 UTC | |
|
Re: Array slice vs foreach and push
by ashish.kvarma (Monk) on Nov 10, 2011 at 04:49 UTC | |
|
Re: Array slice vs foreach and push
by vinian (Beadle) on Nov 10, 2011 at 11:00 UTC | |
by jwkrahn (Abbot) on Nov 10, 2011 at 11:46 UTC | |
by vinian (Beadle) on Nov 11, 2011 at 14:53 UTC |