#!/usr/bin/perl use strict; use warnings; my %hash; my $conn; open my $fh, '<', 'file1.txt' or die "failed: $!"; while (<$fh>) { while ( /conn=(\d+).*uid=(.*?),/g ) { $conn = $1; $hash{$conn} = $2; } my ($conn1) = map { $_ =~ /conn=(\d+).*SRCH=Q/ } <$fh>; print "$hash{$conn} => $conn\n" if grep /$conn1/, keys %hash; } close $fh;