use strict;
use warnings;
my $s = q<ÃÎÌËÁßÍÏÎÌÐÏÊÐÎÌßÏËÒÏÇÒÊÆßÓœž“ÏÑ–‘™Áß‘ŠÆÌÇÌÑ‘ŠŒ–šÑœ’ß
+™>;
print pack "C*", map { $_ ^ 255 } unpack "C*", $s;
<134> 2013/05/13 04-08-59 <local0.info> nu9383.nuspire.com pf
This only works if I run the code in an ASCII encoded file, there doesn't seem to be utf-8 involded here.
unpack "C*", $s; returns a list consisting of the value of each byte in $s. pack with "C*" takes a list of bytes and turns it into a string. Read perlpacktut for more information on that. |