[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