Mahlzeit,
Ja, ich hab mich wohl falsch ausgedrückt. Die Python- und Java-Snippets hab ich auf Github gefunden und obwohl das in beiden PL's ein grausiger Syntax ist, war das doch ein riesen Glück eine Vorlage zu haben. In Perl jedoch ist das wesentlich schöner anzuschauen ;)
Ok, dann schaut das anders aus. Grade für sowas ist für mich Perl immer noch erste Wahl.
Und ja, mit einer einzigen Code-Referenz mehrere Public-Methoden zu erzeugen ist in Perl ja auch kein Problem:
# On || Off || switch über eine anonyme Funktion
sub AUTOLOAD{
my $self = shift;
my $name = our $AUTOLOAD =~ /::(\w+)$/ ? $1 : '';
if( $name eq 'On' || $name eq 'Off' ){
$self->$OnOff($name, @_);
}
elsif( $name eq 'switch'){
$self->$OnOff(@_);
}
else{ die "Unbekannte Funktion: '$name'!\n" }
}
Beliebig erweiterbar, keine Code-Redundanzen und trotzdem übersichtlich. So kann der Anwender zweckmäßig wählen, welche Methode er einbindet.
MfG