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