in reply to Best way to search file

Store the mapping of social numbers to identifiers in a hash:
#! /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"; } }

The input files I used:
file1.in

John|123 Jane|456 John|123 Jane|456 Jack|789

file2.in
John Doe,123,a0 Jane Smith,456,b1
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ