My apologies, as I think I may have misunderstood you about Order ID/Title. If you're looking to skip all orders that have the same Order ID and Title, you can use a similar construct as before except at the title-matching line:
if(/Title:(.+)/){ next RECORD if $seen{$hash{orderID}}{$1}; $seen{$hash{orderID}}{$1}++; $hash{title} = $1; }
The above builds a hash of hashes, like this:
$hash{OrderID}{title}
This will effectively keep track whether an identical Order ID and title has been previously seen.
You can then restore the OrderID line to its former self:
$hash{orderID} = $1 if !defined $hash{orderID} and /Order ID:(\ +S+)/;
You mention in your comments that printing from a subroutine isn't a good idea.
I meant printing to the console. Yet, I didn't find anything about this being bad practice when searching for it, so I need to reevaluate my position on this. Nevertheless, writing to a spread sheet from within a subroutine is just fine (and this sounds inconsistent with printing not being fine, so I appreciate you asking me about it).
In reply to Re^13: How best to strip text from a file?
by Kenosis
in thread How best to strip text from a file?
by bobdabuilda
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |