Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

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 all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2017-09-22 04:40 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (257 votes). Check out past polls.