http://qs321.pair.com?node_id=931292

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I have multiple text lines that constitute a block of text such as two examples shown below. The second block of text begins with the 2nd "ADD RULE" statement:

ADD RULE DESCRIPTION = ABCD0009 XYZ Salary RULESETNAME = ABCD0009 DESTINATIONNAME = /MAIN/HRP MAIN/PEC/ ADD RULECOMPONENT VARIABLE = &RPT_IX-Payroll_Type OPERATOR = Equal VALUE = *Salary* CONTAINSWILDCARD = Y OPENPARENTHESISCOUNT = 1 LOGICALINDICATOR = AND ADD RULECOMPONENT VARIABLE = &RPT_IX-Pay_Group OPERATOR = Equal VALUE = *875* CONTAINSWILDCARD = Y CLOSEPARENTHESISCOUNT = 1 ADD RULE DESCRIPTION = EFGH0010 LMN Salary RULESETNAME = EFGH0010 DESTINATIONNAME = /MAIN/HRP MAIN/PEC/ ADD RULECOMPONENT VARIABLE = &RPT_IX-Payroll_Type OPERATOR = Equal VALUE = *Salary* CONTAINSWILDCARD = Y OPENPARENTHESISCOUNT = 1 LOGICALINDICATOR = AND ADD RULECOMPONENT VARIABLE = &RPT_IX-Pay_Group OPERATOR = Equal VALUE = *875* CONTAINSWILDCARD = Y CLOSEPARENTHESISCOUNT = 1

My objective is to take a block of text that constitutes a single "ADD RULE" statement, with all it's associated components, and search a larger file containing literally thousands of similar ADD RULE statements and identify duplicates of two types. 1) An exact duplicate: all components of the ADD RULE statement match exactly, or 2) A functional duplicate: The RULESETNAME, VARIABLE, OPERATOR, and VALUE, are an exact match.

I have written some code that can grab a block of text that constitutes one ADD RULE statement. I can't figure out how to compare that block of text with the larger file and produce a list of exact or functional duplicates.

Any thoughts would be appreciated.

HawgDriver