HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (
-   Programming/Scripts (
-   -   Perl non-printable chars and unwanted formatting (

spinoza 30th March 2006 00:59

Perl non-printable chars and unwanted formatting
I have a problem using perl to print certain non-visable characters. Simply put, the code I'm working from appear to assume that the following statement will output one byte.

perl -e 'print "\x90";'

However, filtering with wc -c or redirecting to file shows that the statement is actually producing two bytes. A hex viewer shows that the 2nd byte is the correct 0x90, but it is proceeded by a 0xC2 byte. This also occurs with other non-printable characters, but not with printable characters.

I'm quite new to both linux and perl so I'm not sure whether I'm doing something wrong here or whether I've just misunderstood the purpose of the original program. All the web searches and perl reference texts appear to show that the statement is correct and only one byte should be output. Is this extra byte some kind of formatting byte ?

I'm using Redhat 9 and using perl in a bash shell running in a terminal window.

I would appreciate it if anyone could help with this.


falko 30th March 2006 16:56

Did you try single quotes?


perl -e 'print \'\x90\';'

spinoza 30th March 2006 17:37


The single quotes don't appear to work. The shell just displays the > prompt

I'd be interested to know whether the following statement outputs 1 or 2 on your system (It produces 2 on mine) ?

perl -e 'print "\x90";' | wc -c



falko 31st March 2006 12:49


test:~# perl -e 'print "\x90";' | wc -c

spinoza 1st April 2006 21:30


I have solved the problem now. My system was using Unicode, which resulted in different codes for non printable characters. By setting the LANG export to en_GB everything works perfectly.

Thanks for your help.



All times are GMT +2. The time now is 07:45.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.