open FILE, '+< products.txt' or die $!; my @lines = map { s/^([^\t]+)\t(.*)/ exists $product{$1} and exists $currency{$2} ? "$product{$1}\t$currency{$2}" : "$1\t$2" /e; $_ } ; seek FILE, 0,0; print FILE @lines; truncate FILE, tell(FILE); close FILE; #### perl -pi.bak -e "s/(\d+)\t(\d+)/$2\t$1/" products.txt