There's a circular dependency between Qt.pm and Qt/debug.pm. Combining that with this complex autoloader seems to be the source of the problem.
Forcing the debug module to load before main module works: perl -MQt::debug ./aclock.pl perl -MQt::debug -MQt ./aclock.pl the following fails: perl -MQt -MQt::debug ./aclock.pl Breaking the circular dependency by removing either module's "use" statement makes the module work. However, removing it from the debug.pm file means that attempting to turn debugging on with either of perl -MQt::debug ./aclock.pl perl -MQt::debug=verbose ./aclock.pl crashes. Removing it from the main Qt.pm sounds wrong but seems ok - Qt.pm checks the debugging module's variables, but uses fully qualified names to do it. (patch attached) I haven't understood how this packages's autoloading code does what it's supposed to, but my cargo cult can get cargo to land. Steve
Sat Aug 30 05:05:40 BST 2008 Steve Cotton <[EMAIL PROTECTED]> * 481642 - break circular dependency between Qt.pm and Qt/debug.pm diff -rN -u old-libqt-perl-3.008/PerlQt/Qt.pm new-libqt-perl-3.008/PerlQt/Qt.pm --- old-libqt-perl-3.008/PerlQt/Qt.pm 2008-08-30 15:47:44.000000000 +0100 +++ new-libqt-perl-3.008/PerlQt/Qt.pm 2008-08-30 15:47:44.000000000 +0100 @@ -398,7 +398,6 @@ package Qt::_internal; use strict; -use Qt::debug(); our $Classes; our %CppName;