It's hard to say for certain what the cause is for your "cryptic error", since you didn't include it with the question. Fortunately, my openSuSE 11.1 box has both bignum and Tk available on it, and when I run your code (with
use strict ;-) ) I do see _an_ error which may or may not be applicable:
Assertion ((svtype)((_svi)->sv_flags & 0xff)) >= SVt_PV failed: file "
+objGlue.c", line 307 at /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linu
+x-thread-multi/Tk/Widget.pm line 205.
at ./foo.pl line 9
This appears to be failed assert from Tk.
My best guess is that the integer width constant is being translated into a bignum, and that Tk doesn't like it.
Question: do you really need seamless big integers, or would it be sufficient to specify a few variables as big numbers with a module like
Math::BigInt?