[Dresden-pm] Problem mit Moduleinbindung

Thomas Rittsche thomas.rittsche at gmail.com
Mi Aug 15 01:31:41 PDT 2007


> Steffen Winkler's Kritik klingt vielleicht etwas roh am frühen Morgen,

Ach wo - Lehrjahre sind keine Herrenjahre ;)

> prinzipiell sind seine Tips aber Gold wert.

Das ist wohl war.... Vielen Dank dafür Steffen!!!

> Hier eine Problemzone, die beim Zusammenbauen von Strings eine Ursache
> sein kann:
> >  ($value{'a'}, $value{'b'}, $value{'c'}) =
> >  eval"$myModul::calculate(\%val)";
>        ^                    ^^    ^
>
> Es ist nicht sicher, ob Du versuchst, das % zu escapen, oder ob Du
> eine Hashreferenz möchtest. Momentan escapest Du nur mit dem \
> innerhalb der Doppelhochkommas.

Da hast du (wie so oft) Recht. Verstehe....

Wir habens jetzt über die "Winklersche" Methode gelöst:

use Carp qw(croak);

eval "require $productCalculate";

croak $@ if $@;

if(my $coderef = UNIVERSAL::can($productCalculate, $sub)){
  ($value{'netto'}, $value{'mwstprice'}, $value{'brutto'}) = $coderef->(\%val);
}


Allerdings mit dem Unterschied, das wir beim eval Hochkommas
verwenden. Die vorgeschlagenen geschweiften Klammern habe Probleme
verursacht.

Vielen Dank für Eure Hilfe!!!!

Gruß Thomas