A ver... no se puede programar con el
método de prueba y error en informática, porque, de seguro que tardarás
mucho tiempo en encontrar la solución correcta.
¿Tienes claro el algoritmo de ordenación, lo que ha de hacer el programa para que ordene una lista de valores?
Entre las variables, las hay que almacenan los valores a ordenar (como @a), otras que son auxiliares (como $temp), y otras que son contadores, para poder recorrer los índices de @a (como $i y $b).
Las que son contador, comienzan con un valor, y luego, dentro de un bucle, se van incrementando.
Luego tenemos las condiciones. Hay condiciones para los bucles, que marcarán el final del bucle, y condiciones de proceso. En este caso, el proceso es ver si dos elementos están desordenados, y en ese caso, intercambiarles.
A lo mejor el algoritmo de la burbuja es demasiado complicado para tu nivel...
Te recomiendo entonces que pruebes uno más sencillo, como el
BogoSort. De hecho, casi lo tienes terminado, para ese algoritmo.