You want grep (to remove rows), map (to transform rows) or List::MoreUtils's apply (to transform rows).
When using grep or map, don't change $_ unless you want to change the original array.
apply is similar to map, but you can safely modify $_. The downside to using apply is that you're limited to 1:1 transformations (whereas map is extremely flexible).
use List::MoreUtils qw( apply ); my @orig = qw( Just another Perl hacker ); my @grepped = grep { /^[A-Z]/ } @orig; my @mapped = map { uc } @orig; my @applied = apply { s/[aiueo]//ig } @orig; print("@orig\n"); # Just another Perl hacker print("@grepped\n"); # Just Perl print("@mapped\n"); # JUST ANOTHER PERL HACKER print("@applied\n"); # Jst nthr Prl hckr
List::MoreUtils can easily be installed if you're using ActivePerl. Just type by ppm install List-MoreUtils at the prompt
In reply to Re: How to substitute the elements in an array without changing the original array.
by ikegami
in thread How to substitute the elements in an array without changing the original array.
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |