in reply to Hex regex fails in subroutine

my %smblCO = ( 'xE2' => { '\xE2\x80\x9A' => '‚', '\xE2\x80\x9C' => '“', '\xE2\x80\x9D' => '”', '\xE2\x80\x9E' => '„', '\xE2\x80\x93' => '–', '\xE2\x80\x94' => '—', '\xE2\x80\x98' => '‘', '\xE2\x80\x99' => '’', '\xE2\x80\xA0' => '†', '\xE2\x80\xA6' => '…', '\xE2\x84\xA2' => '™' }, 'xC2' => { '\xC2\xA9' => '©', '\xC2\xAE' => '®', '\xC2\xB1' => '±', '\xC2\xBC' => '¼', '\xC2\xBD' => '½', '\xC2\xBE' => '¾', '\xC2\xB0' => '°' } );

You should try putting the keys in double quotes.

my %smblCO = ( 'xE2' => { "\xE2\x80\x9A" => '‚', "\xE2\x80\x9C" => '“', "\xE2\x80\x9D" => '”', "\xE2\x80\x9E" => '„', "\xE2\x80\x93" => '–', "\xE2\x80\x94" => '—', "\xE2\x80\x98" => '‘', "\xE2\x80\x99" => '’', "\xE2\x80\xA0" => '†', "\xE2\x80\xA6" => '…', "\xE2\x84\xA2" => '™' }, 'xC2' => { "\xC2\xA9" => '©', "\xC2\xAE" => '®', "\xC2\xB1" => '±', "\xC2\xBC" => '¼', "\xC2\xBD" => '½', "\xC2\xBE" => '¾', "\xC2\xB0" => '°' } );
Naked blocks are fun! -- Randal L. Schwartz, Perl hacker