#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $AoH_orig = [ { 'title' => 'aaa-aaa', 'name' => 'tom' }, { 'title' => 'bbb-bbb', 'name' => 'kathy' }, { 'title' => 'ccc-ccc', 'name' => 'bill' } ]; #try mapping print Dumper ($AoH_orig); my $AoH_new = map { $_->{'title'} =~ s/-/_/g } @$AoH_orig; print Dumper($AoH_orig);
$VAR1 = [ { 'name' => 'tom', 'title' => 'aaa-aaa' }, { 'name' => 'kathy', 'title' => 'bbb-bbb' }, { 'name' => 'bill', 'title' => 'ccc-ccc' } ]; $VAR1 = [ { 'name' => 'tom', 'title' => 'aaa_aaa' }, { 'name' => 'kathy', 'title' => 'bbb_bbb' }, { 'name' => 'bill', 'title' => 'ccc_ccc' } ];
All dashes (-) are replaced with underscore (_) isn't that what you are trying?
I probably will not use map for this as you are not returning a list back. I would stick with your for for idea.
$_->{'title'} =~ s/-/_/g for(@$AoH_orig); should work just fine (i think)
cheers
SK
In reply to Re: Basic help with mapping
by sk
in thread Basic help with mapping
by bradcathey
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |