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; }