Creo que en este ejemplo que pones, la forma más fácil de eliminar duplicados és metiendo tu vector @a en un hash %a.
Recorre tu vector y pon cada elemento como clave del hash, en cuanto al valor de esa clave puedes no poner nada o utilizar un contador para saber cuántas veces está duplicado cada elemento. De esta manera cuando termines de recorrer el vector tendrás un hash cuyas claves són los elementos de tu vector original sin repeticiones.
Sólo tendrás que recorrer las claves de tu hash y volcarlas en un vector. Si recorres el hash utilizando la función sort tu vector estará ordenado.
No he puesto nada de código, ya que entiendo que tu intención es practicar para aprender, o resolver una tarea académica.
Si tienes alguna dificultad con algo de código te ayudaré encantado.