in reply to map and grep or clear code?

Your code:

my %filter_map = ( ... ); my $filter = q{}; if ($filter_clean) { my @filter_split = split //, $filter_clean; for my $fc (@filter_split) { if ( $fc =~ /\d/ ) { $filter .= $fc; } else { $filter .= $filter_map{ uc $fc }; } } } say $filter;

Simpler procedural code:

my %map = ( ... ); $map{$_} = $_ for 0..9; my $numeric; for (split //, uc($word)) { $numeric .= $map{$_}; } say $numeric;

Simpler functional code:

my %map = ( ... ); $map{$_} = $_ for 0..9; my $numeric = join '', map $map{$_}, split //, uc($word); say $numeric;

In this case, both the procedural and function approach are quite clear.

It's very ironic that you're calling map unclear when your variable name indicates you're thinking in terms of a map.

Replies are listed 'Best First'.
Re^2: map and grep or clear code?
by ghenry (Vicar) on Jan 31, 2012 at 12:45 UTC

    I think I prefer yours and 950927:

    my %map = ( ... ); $map{$_} = $_ for 0..9; my $numeric = join '', map $map{$_}, split //, uc($word); say $numeric;

    Walking the road to enlightenment... I found a penguin and a camel on the way.....
    Fancy a yourname@perl.me.uk? Just ask!!!