I didn't get an error. But then I am not using v5.14.
You're also not using warnings, which would have made Perl complain about "Use of uninitialized value $t2::TRUE in concatenation (.) or string at t3.pl line 7" (line 7 in my altered file) regardless of Perl version. Note also that
print " my: \$t2::TRUE = '$t2::TRUE'\n";
prints
my: $t2::TRUE = ''
(empty single-quotes instead of '1') with or without warnings.
Update: Upon re-reading your post, it occurs to me that your intention may have been to point up the fact that the value of the lexical $TRUE defined in the .pm file is not visible in the .pl file ("Pay attention to the value of $TRUE in the sample..."). If so, I offer my own apologies! (In any event, the use of warnings remains a valuable, albeit implicit, recommendation.)
| [reply] [Watch: Dir/Any] [d/l] [select] |