e.g in the following code to strip the character "h" from all elements in @arr
my @bla = map { tr/h//d; $_ } @arr;
will also change the entries of @arr.
To avoid this, one needs to write
my @bla = map { (my $tmp = $_) =~ tr/h//d; $tmp } @arr;
or
my @bla=@arr; tr/h//d for @bla;
Hmm ... I'm wondering if it would make sense to have an alternative non-aliased special var, maybe like $__ such that one could write:
my @bla = map { $__=~tr/h//d; $__ } @arr;
well still not really DRY ...
Any alternative ideas?
Cheers Rolf
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: non aliased default var $_
by JavaFan (Canon) on Mar 10, 2010 at 13:36 UTC | |
by LanX (Saint) on Mar 10, 2010 at 13:42 UTC | |
by Anonymous Monk on Mar 10, 2010 at 14:26 UTC | |
by LanX (Saint) on Mar 10, 2010 at 14:33 UTC | |
|
Re: non aliased default var $_
by jwkrahn (Abbot) on Mar 10, 2010 at 16:14 UTC | |
|
Re: non aliased default var $_
by ikegami (Patriarch) on Mar 10, 2010 at 15:51 UTC | |
by LanX (Saint) on Mar 10, 2010 at 16:06 UTC | |
|
Re: non aliased default var $_
by BrowserUk (Patriarch) on Mar 10, 2010 at 12:16 UTC | |
by tye (Sage) on Mar 10, 2010 at 19:24 UTC | |
by BrowserUk (Patriarch) on Mar 10, 2010 at 19:29 UTC | |
by LanX (Saint) on Mar 10, 2010 at 12:43 UTC | |
by BrowserUk (Patriarch) on Mar 10, 2010 at 13:11 UTC | |
by LanX (Saint) on Mar 10, 2010 at 13:26 UTC | |
by BrowserUk (Patriarch) on Mar 10, 2010 at 13:46 UTC |