いろんな解説サイト見てみると
s/(\W)/'%' . unpack('H2', $1)/eg;

上のように.の前後と$1の前に半角スペースが入っているんだが
このスペースは必要なのか?削除してはだめなのか?