in reply to map it back jack

%myhash = map{ $v = $_; $v =~ s/_/ /g; $_,$v } @elements;

Replies are listed 'Best First'.
Re: Re: map it back jack
by redcloud (Parson) on Dec 16, 2000 at 02:59 UTC
    Seems like you can save a couple of keystrokes if you're not particular about what ends up in $v, since s/// operates on $_:

    my $v; my %myhash = map { $v = $_; s/_/ /g; $v, $_ } @elements;
    Is there a way to pare it down more? (The Monastery needs a golf course!)

    Update: As I0 points out, this also modifies @elements, which may not be what you want.

    johannz's for construct is looking the most elegant to me now.

      In the quest for Shorter and More Efficient:
      my %myhash = map { $v=$_; y/_/ /; $_,$v } @elements;
      You may not be particular about what ends up in $v, but if you're particular about what ends up in @elements you won't want to modify $_ ($v=$_)=~tr/_/ /;$_,$v