ord('k') is 107 so it should print 107
Uhm, no.
the first statement should not effect it.
Yes, it should. To quote myself:
Setting $# sets the output format for printed numbers. 107 is still a
number in my book.
From man perlvar:
$# The output format for printed numbers. This vari
able is a half-hearted attempt to emulate awk's
OFMT variable. There are times, however, when awk
and Perl have differing notions of what counts as
numeric. The initial value is "%.ng", where n is
the value of the macro DBL_DIG from your system's
float.h. This is different from awk's default
OFMT setting of "%.6g", so you need to set $#
explicitly to get awk's value. (Mnemonic: # is
the number sign.)
Use of $# is deprecated.
Is $# really broken for eons? Where's that from?
Yes it is. Your code is proof.
Abigail