Файл forsojunk
выглядит следующим образом (многие другие строки не показаны).
s/e\x27\x27\x27/é/g;
s/e\x27/é/g;
s/a\x5f/à/g;
junk.pl
заключается в следующем.
#! /usr/bin/perl
use strict; use warnings;
while(<>) {
$_ =~ s/s\x2f([^\x2f\x5c]+)([^\x2f]*)\x2f([^\x2f]*).*/1=$1; 2=$2; 3=$3/ ;
print $1;
print $2;
print " -> ";
print $3;
print "\n";
}
который дает
> junk.pl forsojunk
e\x27\x27\x27 -> é
e\x27 -> é
a\x5f -> ò
но я не хочу распечатывать буквальный шестнадцатеричный код, такой как \x27\x27\x27
. Я хочу распечатать, как это выглядит, в читаемой форме. В первой строке $2
должно быть напечатано как '''
, и все "сообщение" в первой строке должно быть
e''' -> é
Как это сделать?