Thread Nicht benötigte Argumente trotzem in eine Variable kopieren? (29 answers)
Opened by Kuerbis at 2018-02-22 08:19

rosti
 2018-02-24 10:25
#188040 #188040
User since
2011-03-19
3509 Artikel
BenutzerIn
[Homepage]
user image
2018-02-22T16:08:28 Kuerbis
Die Informationen in $info sind nur ein Angebot, das Plugin könnte auch eine eigene Konfigurationsdatei benutzen.


Nun, ohne weitere Prüfungen würde ich das nicht so durch den Konstruktor reichen und mit dem Namen der Klasse segnen. Zum Filtern von Argumenten macht sich ein Hash ganz nützlich:

Code (perl): (dl )
1
2
3
4
5
6
7
sub new{
   my $class = shift;
   my %cfg = (
     name => '',
     ort  => '',
   @_);
}


womit man auch sehr gut sehen kann, um welche Daten es da geht. Übernommen wird erst nach der Prüfung aber dann so:

Code (perl): (dl )
1
2
3
4
    bless{
      name => $cfg{name},
       ort => $cfg{ort}
    }, $class;


damit man der Instanz nicht einfach so beliebige Eigenschaften unterjubeln kann. Statt einfacher Schlüsselnamen sind auch welche mit vorangestelltem Dash verbreitet die aus der UNIX-Welt entlehnt sind:

Code (perl): (dl )
1
2
    my $person = Person->new( -name => 'Otto', -ort => 'Hamburg'  )
       || die $@;


Und das sieht auch ein kleinbischen besser aus, als nicht benötigte Argumente einfach so in den Skat zu drücken ;)

View full thread Nicht benötigte Argumente trotzem in eine Variable kopieren?