#!/usr/bin/perl use strict; use warnings; open my $pass_handle, '<', 'passwords.txt' or die "Open fail: $!"; my %password; while (<$pass_handle>) { chomp; my ($key,$pass) = split; $password{$key} = $pass; } open my $input_handle, '<', 'input.txt' or die "Open fail: $!"; open my $output_handle, '>', 'output.txt' or die "Open fail: $!"; while (<$input_handle>) { s/^(\S+\s+\S+\s+".*"\s+\S+\s+\S+\s+)(\S+)(\/)/$1$2$3$password{$2}/; print $output_handle $_; }