sub dump_afp {
my $obj = shift;
my $struct = $obj->struct;
my @keys = sort grep !/^_|^(?:Data|EscapeSequence|ControlCode|Length|CC|(?:Sub)?Type|FlagByte)$/, keys %$struct;
push @keys, 'Data' if exists $struct->{Data};
WID: foreach my $key (@keys) {
next if ref $struct->{$key};
length($x = $struct->{$key}) or next;
if ($obj->ENCODING and grep { $key eq $_ } $obj->ENCODED_FIELDS) {
$x = $obj->$key;
$x = qq("$x");
}
elsif ($x =~ /[^\w\s]/) {
$x = "";
}
if ($key eq 'Data') {
if($x =~ m/^\"(\w|\d|\$)/) {
$x =~ s/\"|\(|\)//g;
if($x =~ m/^\d\d\/\d\d\/\d\d\s/){
my @dateinfo = split(/\s/, $x);
if($dateinfo[0] =~ m/^\d\d\/\d\d\/\d\d/) {
print "";
print $dateinfo[0];
print "\n";
print "";
print $dateinfo[1];
print "\n";
}
}
else {
if($x =~ m/^\d\d\/\d\d\/\d\d/) {
print "";
print $x;
print "\n";
}
if (($x !~/^\d\d\/\d\d\/\d\d/)&&($x != "Patient")){
if ($x !~ /^((\d+)||(\d+,\d+))\.\d\d/){
print "";
print $x;
print "\n";
}
}
}
if ($x =~ m/^((\d+)||(\d+,\d+))\.\d\d/){
print "";
print $x;
print "\n";
}
if($x =~ m/^((\$\d+)||(\$\d+,\d+))\.\d\d/) {
print "";
print $x;
print "\n";
}
}
}
if ($x =~ m/^Patient/){
last WID;
}
}
if ($obj->has_members) {
dump_members($obj);
}
}