Router_Name Serial_No Fru_Desc Location Status RouterA AA FRUA NULL Online RouterA BB FRUB FPC0 PIC0 Online RouterA CC FRUC FPC1 PIC1 Online RouterA DD FRUD FPC2 PIC2 Online RouterA EE FRUE FPC3 PIC3 Online RouterB FF FRUF FPC5 PIC5 Online RouterB GG FRUG FPC6 PIC6 Online RouterB HH FRUH FPC7 PIC7 Online RouterB II FRUI FPC8 PIC8 Online RouterB JJ FRUJ FPC9 PIC9 Online #### RouterA CC FRUC FPC1 PIC1 Online RouterA DD FRUD FPC2 PIC2 Online RouterA EE FRUE FPC3 PIC3 Online RouterB AA FRUA FPC0 PIC1 Online RouterB FF FRUF FPC5 PIC5 Online RouterB GG FRUG FPC6 PIC6 Online RouterB HH FRUH FPC7 PIC7 Online RouterB II FRUI FPC8 PIC8 Online RouterB JJ FRUJ FPC10 PIC10 Online #### my $sth_m = $dbh->prepare("Select Serial_No,Fru_Desc,Status from master_table2 where Router_Name = ?") or die "Cannot prepare master_table for selecting rows based on router name:" .$dbh->errstr; my $sth_a = $dbh->prepare("Select Serial_No,Fru_Desc from active_table2 where Router_Name = ?") or die "Cannot prepare active_table selecting rows based on router name" .$dbh->errstr; foreach my $rtr(@routers) { $sth_m->execute($rtr); $sth_a->execute($rtr); while (my @row_master_db = $sth_m->fetchrow_array) { push(@db_rows,[@row_master_db]); } foreach $test1(@db_rows) { print @$test1; } print "\n"; while (my @row_active_db = $sth_a->fetchrow_array) { push(@live_rows,[@row_active_db]); } foreach $test2(@live_rows) { print @$test2; } print "\n"; ....... (here i have the code to compare each row from @db_rows to each and every row of @live_rows ....... } #### First Iteration - Master_table AA FRUA Online BB FRUB Online CC FRUC Online DD FRUD Online EE FRUE Online First Iteration - active_table EE FRUE DD FRUD CC FRUC Second iteration - Master_table AA FRUA BB FRUB CC FRUC DD FRUD EE FRUE FF FRUF Online GG FRUG Online HH FRUH Online II FRUI Online JJ FRUJ Online Second iteration - active_table EE FRUE DD FRUD CC FRUC AA FRUA FF FRUF GG FRUG HH FRUH II FRUI JJ FRUJ