#! /usr/bin/perl use warnings; use strict; my %alphanum; open my $COMMA, '<', 'file2.in' or die $!; while (<$COMMA>) { my ($social, $id) = (split /,/)[1, 2]; $alphanum{$social} = $id; } open my $VBAR, '<', 'file1.in' or die $!; while (<$VBAR>) { chomp; my $social = (split /\|/)[1]; if (exists $alphanum{$social}) { print "$_|$alphanum{$social}"; } else { print "$_\n"; } }