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;

Reply via email to