Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

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 web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2016-10-25 03:49 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (313 votes). Check out past polls.