$pkg = new $hash{pkgname}()
$hash{pkgname} enthält einen String wie z.B. "meinpkg".
Was soll »$hash{pkgname}« bedeuten? Was für ein Hash ist das? Was soll diese Schreibweise. Ich kenne die nur von variablen Variablen: ${$string}
Willst du vielleicht einfach einen Klassennamen in einer Variablen? Kein Problem:
class Foo {}
$classname = "Foo";
$instance = new $classname;
Mathias