Toon posts:

[PERL] Voor of tegen het gebruik van anonymous sub

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik had laatst op mijn werk een discussie over een OOP module die ik had geklust. Het ding gebruikt nogal wat accessor methods (set & read var) en die laat ik definieren in een lusje.

zo ongeveer:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package OopModule;

use strict; #|| die!

#define what the module can do. 
#The values are defaults.
my %can_ = ( "Key" => "", 
         "Lock" => "Very big",
         "Tweaker" => "Cool kinda guy",
         "Cows" => "Run!",
         "Hash" => {},
         "Array" => [ 1, 3, 5, 7],
       );

sub new {
  my $class = shift;
  my $self = {};
  return(bless($class, $self));
}

foreach my $key ( keys %can_ )
  no strict 'refs';
  *{$key} = sub {
    my $self = shift;
    my $value = shift;
    # set the value or the default value
    $self->{$key} = $value if $value;
    $self->{$key} = $can_{$key} if !$self->{$key};

    return $self-{$key}
  }
}

De discussie was dus dat het op deze manier onduidelijk is welke flow de data volgt door de module. Toch vind ik dit een elegantere oplossing dan 20 keer een sub jada { ... } te typen.

Wat is jullie mening?

edit:

ff wat typootjes weg gewerkt

Verwijderd

Topicstarter
'k had natuurlijk kunnen weten dat er hier geen perl-hackers rondhangen - kan je zo zien aan de hoeveelheid windows talen die er in de topiclist staan :(

  • Onno
  • Registratie: Juni 1999
  • Niet online
Je *zou* natuurlijk ook wat langer dan 3,5 uur kunnen wachten op een reactie... 't is maar een idee hoor. :)

Verwijderd

Topicstarter
Dat kan ook - des al niet te min hangen hier hoogst waarschijnlijk very few perl-hackers rond... Best spijtig, want het is toch de leukste taal van het moment :9

Verwijderd

Mij lijkt die 20 keer sub jada {} overzichtelijker.

- edit -
Weer zo'n vent die het 1337 vindt om het over 'hackers' te hebben als ie coders bedoelt.. :r

  • pim
  • Registratie: Juli 2001
  • Laatst online: 03-09 15:08

pim

eerst een tijd Perl gebruikt, daarna php ontdekt. wow, ontwikkeldtijd was ineens verviervoudigd :)

maar goed, voor zijn klein scriptje vind ik het niet uitmaken of de "dataflow" onduidelijk is..

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

ik vind het juist een zeer makkelijke methode en gebruik het soms zelf ook... het moet natuurlijk wel duidelijk zijn wat het doet dmv. benamingen etc. [in PHP]

Klaar voor een nieuwe uitdaging.


  • tomato
  • Registratie: November 1999
  • Niet online
Tsja, die Windows talen. Het is een schande he, ik heb er ook geen goed woord voor over |:(

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Op woensdag 21 november 2001 15:45 schreef pim het volgende:
eerst een tijd Perl gebruikt, daarna php ontdekt. wow, ontwikkeldtijd was ineens verviervoudigd :)
Verviervoudigd? Waarom gebruik je het dan nog? :?
Of bedoel je dat je ontw. tijd nu nog maar 1/4 was van die met Perl? :P

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Verwijderd

Topicstarter
Op woensdag 21 november 2001 15:42 schreef Sneech het volgende:
Mij lijkt die 20 keer sub jada {} overzichtelijker.

- edit -
Weer zo'n vent die het 1337 vindt om het over 'hackers' te hebben als ie coders bedoelt.. :r
[offtopix]
foa vind ik het niet leet om over 'hackers' te praten als ik coders bedoel. Een perl-hacker is een algemeen geaccepteerd begrip wat perlgrammer of perl-coder of perl-klopper of perl programmeur kan beteken. JAPH - staat voor JustAnotherPerlHack(er) en is een errug veel voorkomende comment in perlscripts of posts mbt tot perl
[/offtopix]

je hebt gelijk dat het overzichtelijker is, maar als je nou op al die data een bewerking moet uitvoeren dan zal je alle subs moeten aanpassen. Mijn manier levert dan een voordeel op...

Verwijderd

Simpel, als jij de enige bent die de module hoeft te onderhouden is dit de perfecte oplossing, want het bespaart je een hoop werk.
Als iemand anders ook met die code aan de slag moet is het wellicht toch handiger om het zo leesbaar mogelijk te houden. (Aan de andere kant, wanneer je dit redelijk becommentarieert is het ook best te doen voor iemand die enigszins in perl thuis is.)
Tot slot, hoe zit het met de performance van beide alternatieven?
Pagina: 1