Hmmm... I'll have to go back and have a play with what you've suggested above. Before I noticed you'd come back again, I went off and had a play as promised, and came up with the following change to deal with the Order/Title issue :
if (/Distribution--/) {
# Check to see if the Order/Title combo has been seen before
if ($seen{$$hashReference{orderID},$$hashReference{title}}) {
# Visual prompt for debugging
print "Bollox\n";
next RECORD;
} # End if
else {
# Add the "unseen" Order/Title combo to the hash
$seen{$$hashReference{orderID},$$hashReference{title}}++;
#Write the Order "header" info to the spreadsheet
$worksheet->write($row,0,$$hashReference{fiscalCycle});
$worksheet->write($row,1,$$hashReference{vendorID});
$worksheet->write($row,2,$$hashReference{orderID});
$worksheet->write($row,3,$$hashReference{requisitionNum});
$worksheet->write($row,4,$$hashReference{title});
$worksheet->write($row,5,$$hashReference{'ISBN/ISSN'});
$worksheet->write($row,6,$$hashReference{copies});
And it SEEMS to be working ok so far - but that's only with a small subset of the data. About to branch out and run it on a larger subset and see how it goes with regard to both results and performance... or at least I will do once I fix the server I need to get the data from, which appears to have halted a couple of core services needed for me to get to it... never a dull moment ;)
As you can see I've not gotten a chance as yet to re-visit how/when I am doing the writing to Excel, but I'll do that once I've confirmed the functionality of the script as a whole, and once I've had a bit of a play with your suggestions also.
Thanks once again for the help... it's been VERY valuable and very much appreciated. I'm sure I could have done it without you... eventually... but to be frank - I don't have enough hair left to be able to spare what it would have cost me ;) |