in reply to Break perl foreach loop
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 "<DATE>"; print $dateinfo[0]; print "</DATE>\n"; print "<DESCRIPTION>"; print $dateinfo[1]; print "</DESCRIPTION>\n"; } } else { if ( $x =~ m/^\d\d\/\d\d\/\d\d/ ) { print "<DATE>"; print $x; print "</DATE>\n"; } if ( ( $x !~ /^\d\d\/\d\d\/\d\d/ ) && ( $x != "Patient" ) ) { if ( $x !~ /^((\d+)||(\d+,\d+))\.\d\d/ ) { print "<DESCRIPTION>"; print $x; print "</DESCRIPTION>\n"; } } } if ( $x =~ m/^((\d+)||(\d+,\d+))\.\d\d/ ) { print "<AMOUNT>"; print $x; print "</AMOUNT>\n"; } if ( $x =~ m/^((\$\d+)||(\$\d+,\d+))\.\d\d/ ) { print "<TOTAL>"; print $x; print "</TOTAL>\n"; } } } if ( $x =~ m/^Patient/ ) { last WID; } } if ( $obj->has_members ) { dump_members($obj); } }
--
Your left-hand veeblefetzer is calibrated to the wrong frammistan coefficient. Pass me that finklegruber.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Break perl foreach loop
by misterwhipple (Monk) on Mar 03, 2009 at 18:15 UTC | |
by pvecchio (Initiate) on Mar 03, 2009 at 18:34 UTC | |
|
Re^2: Break perl foreach loop
by pvecchio (Initiate) on Mar 03, 2009 at 18:02 UTC |