On Sun, 27 Apr 2025 17:47:25 +0200 "Dr. Nikolaus Klepp via tde-devels" devels@trinitydesktop.org wrote:
I'm trying to get the TQt language bindings for porl working, but somehow I fail miserably:
$ pqtsh Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at /usr/lib/x86_64-linux-gnu/perl5/5.40/TQt/isa.pm line 48. Compilation failed in require at /usr/bin/pqtsh line 15. BEGIN failed--compilation aborted at /usr/bin/pqtsh line 15.
Removing saif "defined" and giving it another try:
$ pqtsh --- No method to call for : TQt::Application(ARRAY(0x55a9539e6068)) No close candidate found.
at /usr/bin/pqtsh line 652.
All example programs and tutorials from "libtqt-perl" fail with the same error message. So I'm asking if somebody has actually ever tried the perl language bindings for TDE and maybe remembers how to get them working?
Well, using defined() on arrays is no longer supported. Per man perlfunc, perl 5.40.0:
== Use of "defined" on aggregates (hashes and arrays) is no longer supported. It used to report whether memory for that aggregate had ever been allocated. You should instead use a simple test for size:
if (@an_array) { print "has array elements\n" } if (%a_hash) { print "has hash members\n" } ==
I'm not sure what version this changed in, but my guess is that it's been gone for quite a while. It follows that the version of perl this was meant to work against is probably more than a decade old. So the code needs updating.
E. Liddell