Pode-se usar join (para imprimir e combinar o campo 4 do arquivo1 com o campo 1 do arquivo2) e classificar (para produzir dados de entrada ordenados no campo 4 e campo 1 do arquivo1 e arquivo2, resp.) para executar a correspondência:
join -o 2.1,1.3 -1 4 -2 1 <(sort -k 4 file1) <(sort -k 1 file2)
Usando seus dados de amostra, produz
123 AR_0036
456 AR_0033
789 Naval-83
Em relação ao seu script, acho que o índice 2 em
if ($file2[0] = $file1[2]){
está errado.