sub encode {
state $lookup = {
'"' => '"',
'&' => '&',
'<' => '<',
'>' => '>',
map((chr($_), "$_;"), (0..31)),
};
state $re = do { my $tmp = join('', keys %$lookup); qr/([$tmp])/ };
my ($text) = @_;
return '' unless defined $text;
$text =~ s/$re/$lookup->{$1}/g;
return $text;
}
####
{
my $lookup = {
'"' => '"',
'&' => '&',
'<' => '<',
'>' => '>',
map((chr($_), "$_;"), (0..31)),
};
my $re = do { my $tmp = join('', keys %$lookup); qr/([$tmp])/ };
sub encode {
my ($text) = @_;
return '' unless defined $text;
$text =~ s/$re/$lookup->{$1}/g;
return $text;
}
}
####
{
my ($lookup, $re);
sub encode {
$lookup ||= {
'"' => '"',
'&' => '&',
'<' => '<',
'>' => '>',
map((chr($_), "$_;"), (0..31)),
};
$re ||= do { my $tmp = join('', keys %$lookup); qr/([$tmp])/ };
my ($text) = @_;
return '' unless defined $text;
$text =~ s/$re/$lookup->{$1}/g;
return $text;
}
}