Subject: | bug with use strict and X11::Keysyms module |
Date: | Mon, 24 Jan 2011 14:27:31 -0500 |
To: | <bugs-X11-Protocol [...] rt.cpan.org> |
From: | David Weinstein <dweinstein [...] mitre.org> |
If you 'use strict;' with the current module implementation an error
will occur because the module does weirdness with handling of the export
variable %Keysyms..
The following will show the bug: (original example with use strict
preceding it)
---
use strict;
use X11::Keysyms '%Keysyms', qw(MISCELLANY XKB_KEYS LATIN1);
%Keysyms_name = reverse %Keysyms;
$ks = $Keysyms{'BackSpace'};
$name = $Keysysms_name{$ks};
---
13:10 < mst> Guest82545: care to experiment with an edit?
13:10 < Guest82545> you mean to fix it? :-)
13:11 < mst> Guest82545: replace - 'local(*Keysyms) =
*{"${into}::$var"};' with 'my %Keysyms'
13:11 < mst> Guest82545: then at the bottom of the sub
13:11 < mst> Guest82545: *{"${into}::${var}"} = \%Keysyms
13:11 < mst> Guest82545: if you change the import() like that, I think
it should all work fine
I made the above edit indicated by the fellow 'mst' on freenode which
appears to fix the situation.
HTH,
David