Thread Module inventarisieren ohne ExtUtils::Installed
(26 answers)
Opened by bianca at 2013-04-24 11:25 2013-05-05T18:35:23 bianca du solltest die doku zu version strings lesen, um zu verstehen, was bei v5.2.0 passiert und warum du da eben nicht nur ein byte bekommst, auch wenn du es glaubst. (schonmal length() probiert? oder Devel::Peek? dann siehst du, was wirklich drinsteht.) du solltest dir den code von MM_Unix.pm::parse_version ansehen, um zu sehen, was da für ein aufwand betrieben wird, um an die version zu gelangen, ohne das ganze modul laden zu müssen. du solltest dir version.pm ansehen und den tipp ausprobieren, um zu sehen, wie man aus dem version string eine lesbare variante machen kann. diese hinweise kann ich dir geben, aber ich kann und will dir nicht diese ganze doku vorlesen und erklären. mit version strings hab ich selber noch nicht oft zu tun gehabt. Quote der "fehler" liegt darin, dass man für $VERSION beliebigen code angeben kann und verschiedene versionsformate. das kann manchmal praktisch sein (siehe mein beispiel mit der $Revision$ aus CVS). das kann aber auch unheimlich nerven, da man ganz ohne eval nicht auskommt. ein version string (oder auch v-string genannt) lässt sich nunmal nicht so einfach ausgeben (oder gibt nicht wie erwartet die version aus). benutzt man jedoch My::Package->VERSION, wird das automatisch in ein lesbares format konvertiert. du kannst das mit version.pm beheben wie gezeigt. du kannst auch die neueste version von Net::SNMP installieren. damit hast du das problem nicht mehr (vorausgesetzt, kein anderes modul hat so ein format) und musst dich nicht mehr damit beschäftigen. wenn du jedoch etwas verbessern willst, musst du wohl oder übel verstehen, was passiert und dazu doku und code lesen. Quote das ist durchaus möglich. die empfohlene variante ist wie gesagt eine andere. Last edited: 2013-05-05 21:06:52 +0200 (CEST) Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: ![]() ![]() |