Как насчет создания другого массива, который указывает, было ли имя уже использовано?Затем, когда вы впервые прочитаете строку с помощью Jim, установите переменную в этом массиве как используется и запишите в вывод.Если он уже использовался в прошлом, ничего не делать.
@array =(john,jim,rocky,hosanna);
@used =(0,0,0,0);