Go Back   HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials > Linux Forums > Programming/Scripts

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
Reply
 
Thread Tools Display Modes
  #1  
Old 30th March 2006, 00:59
spinoza spinoza is offline
Junior Member
 
Join Date: Mar 2006
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Thumbs down 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.

Thanks.
Reply With Quote
Sponsored Links
  #2  
Old 30th March 2006, 16:56
falko falko is online now
Super Moderator
 
Join Date: Apr 2005
Location: Lüneburg, Germany
Posts: 41,701
Thanks: 1,900
Thanked 2,745 Times in 2,578 Posts
Default

Did you try single quotes?

Code:
perl -e 'print \'\x90\';'
__________________
Falko
--
Download the ISPConfig 3 Manual! | Check out the ISPConfig 3 Billing Module!

FB: http://www.facebook.com/howtoforge

nginx-Webhosting: Timme Hosting | Follow me on:
Reply With Quote
  #3  
Old 30th March 2006, 17:37
spinoza spinoza is offline
Junior Member
 
Join Date: Mar 2006
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Falko,

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

Regards,

S
Reply With Quote
  #4  
Old 31st March 2006, 12:49
falko falko is online now
Super Moderator
 
Join Date: Apr 2005
Location: Lüneburg, Germany
Posts: 41,701
Thanks: 1,900
Thanked 2,745 Times in 2,578 Posts
Default

Code:
test:~# perl -e 'print "\x90";' | wc -c
1
__________________
Falko
--
Download the ISPConfig 3 Manual! | Check out the ISPConfig 3 Billing Module!

FB: http://www.facebook.com/howtoforge

nginx-Webhosting: Timme Hosting | Follow me on:
Reply With Quote
  #5  
Old 1st April 2006, 21:30
spinoza spinoza is offline
Junior Member
 
Join Date: Mar 2006
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Falko,

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.

Regards,

S
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 17:37.


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