use Modern::Perl; open my $FILEA, '<', './FILEA.TXT' or die $!; open my $FILEB, '<', './FILEB.TXT' or die $!; open my $FILEC, '<', './FILEC.TXT' or die $!; open my $FILED, '<', './FILED.TXT' or die $!; my $ts_B = 0; my $ts_C = 0; my $ts_D = 0; while ( my $ts_A = <$FILEA> ) { chomp $ts_A; say "A:$ts_A matches B:$ts_B" if $ts_A == $ts_B; while ( $ts_B = <$FILEB> ) { chomp $ts_B; last if $ts_B > $ts_A; next if $ts_B < $ts_A; say "A:$ts_A matches B:$ts_B"; } say "A:$ts_A matches C:$ts_C" if $ts_A == $ts_C; while ( $ts_C = <$FILEC> ) { chomp $ts_C; last if $ts_C > $ts_A; next if $ts_C < $ts_A; say "A:$ts_A matches C:$ts_C"; } say "A:$ts_A matches D:$ts_D" if $ts_A == $ts_D; while ( $ts_D = <$FILED> ) { chomp $ts_D; last if $ts_D > $ts_A; next if $ts_D < $ts_A; say "A:$ts_A matches D:$ts_D"; } } #### A:102 matches B:102 A:264 matches C:264 A:403 matches D:403 A:403 matches D:403 A:560 matches D:560 A:560 matches D:560 A:744 matches B:744 A:744 matches B:744 A:827 matches C:827 A:915 matches D:915 A:915 matches D:915 A:1018 matches C:1018 A:1180 matches D:1180 ...