sub decode_entities_old { my $array = [ @_ ]; my $c; for (@$array) { s/(&\#(\d+);?)/$2 < 256 ? chr($2) : $1/eg; s/(&\#[xX]([0-9a-fA-F]+);?)/$c = hex($2); $c < 256 ? chr($c) : $1/eg; s/(&(\w+);?)/$entity2char{$2} || $1/eg; } return @$array; } #### say decode_entities_old '&amp;quot;'; => " say decode_entities_old '&#x26;quot;'; => &quot;