#!/usr/bin/perl use strict; use warnings; my @arr = ("1", "Smith", "Ric", "1", "Smith", "Rich", "1", "abc", "A", "1", "cdeQ", "C Sr", "1", "ghi", "G", "2", "cdeQ", "C Sr", "3", "ghi", "G", "3", "abc", "A", "3", "Smith", "Ric", "4", "cde", "C", "5", "cde", "C", "5", "xyz123", "X", "5", "cdeQ", "C II", "5", "Smith", "Rich"); # callno lname fi (repeat 3 data points for each FF at each callno) my @arr2 = ("1", "S", "01/05", "04", "2", "EMS", "01/05", "07", "3", "VF", "01/05", "11", "4", "S", "01/05", "13", "5", "B", "01/05", "17"); # callno type date hr (repeat 4 data points for each incident) my ($i, $j, $seen); $i = 0; $j = 0; for my $arr2(@arr2) { if ( $arr2[$j+3] ) { # ie, if there's a complete call record print "$arr2[$j] " . "$arr2[$j+1] " . "$arr2[$j+2]" . "$arr2[$j+3]\n"; $seen = substr($arr2[$j], 0); print "\tDEBUG: My \$seen: $seen\n\n"; $j += 4; } else { print "\n\t\t No more calls\n"; exit; } for my $arr(@arr) { if ( ($arr[$i]) && ($seen == substr($arr[$i], 0)) ) { print "$arr[$i] " . "$arr[$i+1] " . "$arr[$i+2] " . "\n"; $i += 3; next; } else { print "\n\t\tFF Array exhausted for Callno $seen\n"; last; } } next; } #### 1 S 01/0504 DEBUG: My $seen: 1 1 Smith Ric 1 Smith Rich 1 abc A 1 cdeQ C Sr 1 ghi G FF Array exhausted for Callno 1 2 EMS 01/0507 DEBUG: My $seen: 2 2 cdeQ C Sr FF Array exhausted for Callno 2 3 VF 01/0511 DEBUG: My $seen: 3 3 ghi G 3 abc A 3 Smith Ric FF Array exhausted for Callno 3 4 S 01/0513 DEBUG: My $seen: 4 4 cde C FF Array exhausted for Callno 4 5 B 01/0517 DEBUG: My $seen: 5 5 cde C 5 xyz123 X 5 cdeQ C II 5 Smith Rich FF Array exhausted for Callno 5 No more calls