Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Should I leave behind beautiful code or readable code?

by mreece (Friar)
on Mar 29, 2007 at 15:18 UTC ( #607287=note: print w/replies, xml ) Need Help??

in reply to Should I leave behind beautiful code or readable code?

i know what it does, but i don't know why. one problem with complex return values is that you have avoided giving a name to the structure you have created, forcing me to make one up. maybe the subroutine itself names the structure, but it is hard to tell with MySub.

what is the significance of the first two columns of strings in @somearray? are you creating a hash or a list? what are you offering up as the "readable" alternative?

without changing the expression itself, any of these would be clearer, depending:

my %aliases_for_things = map split(/ /,$_,2), map uc, @somearray; return %aliases_for_things;
return map split(/ /,$_,2), map uc, @somearray; # FIRST and LAST names
my @labels_and_values = map split(/ /,$_,2), map uc, @somearray; return @labels_and_values;
this naming is something you would have to do anyway were you to avoid the maps with the usual foreach...push alternative:
my @flattened_pairs; foreach my $thing (@somearray) { my $upper_thing = uc $thing; my @pair = split / /, $upper_thing, 2; push @flattened_pairs, @pair; } return @flattened_pairs;
as i read something like that, i'm mentally transforming it back to maps so i can personally understand it better anyway. the real gain here is not in the refactoring, but in giving a name to the structure you are returning.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://607287]
and the shadows deepen...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (9)
As of 2018-03-23 14:39 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (294 votes). Check out past polls.