sub _scalar {
my $self = shift; my $value = shift;
# these are from `perldata(1)'
if ($value =~ /^[+-]?\d+$/) {
return ("$value");
} elsif ($value =~ /^(-?(?:\d+(?:\.\d*)?|\.\d+)|([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?)$/) {
return ("$value");
} else {
$value =~ s/([&<>\"])/$char_entities{$1}/ge;
return ("$value");
}
}
####
sub _hash {
my $self = shift; my $hash = shift;
my @text = "\n";
my ($key, $value);
while (($key, $value) = each %$hash) {
push (@text,
"$key",
$self->_item($value),
"\n");
}
push @text, "\n";
return @text;
}