[Dresden-pm] Frage zur Implementation von einer Schnittstelle
Hans-Dietrich Kirmse
hd.kirmse at gmx.de
Sa Okt 29 13:49:59 PDT 2011
Hallo Steffen,
ich möchte mich recht herzlich für deine Antwort bedanken.
Am 28.10.2011 13:17, schrieb Steffen Schwigon:
> Hi!
>
> Ich glaube nicht, dass Du dieses Problem mit Technologie lösen kannst,
ich denke schon ;)
> aber hier trotzdem ein paar Ideen:
>
> 1. Nutze ein CPAN-Modul, die Plugins ermöglichen:
>
> http://search.cpan.org/~muir/Plugins-0.41/
okay. dieses Modul habe ich trotz intensiver Suche nicht gefunden.
Allerdings ist mir dieses Modul viel zu kompliziert gestrickt, sicher
auch für meine doch kleinen Probleme da einfach zu mächtig/gewaltig. ;)
> 2. Hack selbst Dir was mit Modulen (die Plugins) und Funktionen darin
> zusammen, sinngemäß sowas:
>
> package MyProj::UserManagement::Plugin::KirmseStyle;
> sub get_display_name {
> my ($vorname, $nachname) = @_;
> return “$vorname $nachname”;
> }
> 1;
>
> Das Interface ist hierbei der Namespace und die sub inklusive ihrer
> Parameter. Jemand anderes schreibt sein Plugin …::SchwigonStyle, etc.
ich denke, ich habe das inzwischen verstanden.
> Dann rein-eval'n und aufrufen.
>
> my $plugin = get_from_config() || "KirmseStyle"; # config or default
> my $plugin_class = "MyProj::UserManagement::Plugin::$plugin";
> eval "use $plugin_class";
> my $display_name =&{"${plugin_class}::get_display_name"}($vorname, $nachname);
>
> Ich empfehle das nicht wirklich, mache es aber selber auch so.
> Es ist zumindest eine technische Variante mit eval.
ja, werde ich wohl in dieser Art machen.
Danke nochmal.
viele Grüße
Hans-Dietrich
Mehr Informationen über die Mailingliste Dresden-pm