in reply to A Win32 new Perl build dilemma

Output (Incorrect - Perl is changing the chr(27) that precedes each left bracket i.e., the Escape ASCII character, into a left arrow):

Don't blame perl. Character 27 in code page 437 is the left arrow, nothing is changed. The fact that you see the arrow indicates that no ANSI interpretion happens for STDOUT. That's not uncommon, DOS did not interpret ANSI sequences by default, and neither did Windows. Both never needed to do so, because both DOS and Windows never ran natively on terminals. In DOS, you needed to load ANSI.SYS or similar, Windows needs some other changes, and things have changed again in some Windows 10 update. See and pages linked from there, and for Windows 10 changes.


Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^2: A Win32 new Perl build dilemma
by mikegold10 (Novice) on Nov 29, 2021 at 18:44 UTC
    I followed the links in your post reading everything carefully. A comment to one of the StackOverflow questions had an easy solution to the problem, as follows (in case anyone else runs into this):
    Add the following value of type DWORD to the registry at the indicated key:

    HKEY_CURRENT_USER\Console VirtualTerminal = 1
    Problem solved and thank you! I spent several hours trying to figure this one out...