use strict;
use warnings;

sub traiter_octet($){ #caractère d'un octet 
my( $c ) = @_;

	my $val = ord($c); # entier
	if( $val < 128 ){ #ASCII
		return chr($val);
	}else{
		return '='.sprintf('%X', $val);
	}
}#traiter_octet

sub toQP($){ #chaîne 
my( $chn ) = @_;

	utf8::encode($chn);
	$chn =~ s/(.)/traiter_octet($1)/eg;
	return $chn;
}#observer

use Encode 'decode_utf8';
$ARGV[0] = decode_utf8($ARGV[0], 1);
print toQP($ARGV[0]);
print "\n";

