Subject: | Compilation failure with 5.23.x: Unrecognized character \x{18} |
Compilation of the module fails with 5.23.x:
Unrecognized character \x{18}; marked by <-- HERE after $perl = $<-- HERE near column 19 at /tmpfs/.cpan-build/2015090518/AnyEvent-Fork-1.2-hizEm8/blib/lib/AnyEvent/Fork.pm line 630.
This looks like being caused by the following change mentioned in perl5231delta.pod:
Incompatible Changes
ASCII characters in variable names must now be all visible
It was legal until now on ASCII platforms for variable names to contain
non-graphical ASCII control characters (ordinals 0 through 31, and 127,
which are the C0 controls and "DELETE"). This usage has been deprecated
since v5.20, and as of now causes a syntax error. The variables these
names referred to are special, reserved by Perl for whatever use it may
choose, now, or in the future. Each such variable has an alternative way
of spelling it. Instead of the single non-graphic control character, a
two character sequence beginning with a caret is used, like $^] and
"${^GLOBAL_PHASE}". Details are at perlvar. It remains legal, though
unwise and deprecated (raising a deprecation warning), to use certain
non-graphic non-ASCII characters in variables names when not under "use
utf8". No code should do this, as all such variables are reserved by
Perl, and Perl doesn't currently define any of them (but could at any
time, without notice).