in reply to Re^2: Break perl foreach loop
in thread Break perl foreach loop

The data I'm parsing is difficult. The presentation text of the document is referenced by PTX. A PTX::TRN contains data and is the only piece of data that is surrounded by quotes. That's why I test for it early in the loop.

Here we can see the first two pieces of data are "Office" and "Hours". Ugly way to search I know.
The ( $x != "Patient" ) helps me keep from putting in everything else (like "Office") into the xml node Description.
PTX – Presentation Text Data PTX::STO – Set Text Orientation Orientation 0000 WrapDirection 2d00 PTX::AMI – Absolute Move Inline 6480 PTX::AMB – Absolute Move Baseline 1982 PTX::SCFL – Set Coded Font Local 3 PTX::TRN – Transparent Data "Office" PTX::AMI – Absolute Move Inline 7079 PTX::TRN – Transparent Data "Hours"
When I put this print in the match condition I want to break the loop, the print comes along at the right place, it's just that the loop continues.
if ( $x =~ m/^Patient/ ) { print "matched here "; #goto WID; last WID; }
Tried the goto (even going to the originating sub routine, but to no avail. Here's the output:
<Page id="2"> <DATE>06/09/08</DATE> <DESCRIPTION>3 PHARMACY</DESCRIPTION> <AMOUNT>36.00</AMOUNT> <DATE>06/09/08</DATE> <DESCRIPTION>1 LABORATORY</DESCRIPTION> <AMOUNT>35.00</AMOUNT> <DATE>06/09/08</DATE> <DESCRIPTION>1 EMERGENCY SVCS</DESCRIPTION> <AMOUNT>1,159.00</AMOUNT> <DATE>06/09/08</DATE> <DESCRIPTION>3 PULMONARY FUNCTION</DESCRIPTION> <AMOUNT>246.00</AMOUNT> <DATE>06/09/08</DATE> <DESCRIPTION>3 THERAPEUTIC SERV</DESCRIPTION> <AMOUNT>111.00</AMOUNT> <TOTAL>$1,587.00</TOTAL> matched here <DATE>10/08/08</DATE> <DATE>06/09/08</DATE> <DESCRIPTION>70247259</DESCRIPTION> <DESCRIPTION>000000840423</DESCRIPTION> <TOTAL>$68.54</TOTAL> </Page>