El operador splice() se aplica a array. Y el array que estás modificando con splice() guarda las líneas leídas del archivo 'bacillus.adn', una línea por cada elemento del array.
Como vemos, el archivo no tiene 30 líneas, así que el efecto de splice() es "crear" un elemento 30 en el array, y meter ahí tu nombre. Por eso parece que sale "al final" (en realidad, los elementos del 10 al 29 son nulos o indefinidos, por eso no los ves).
Lo que te piden es que pongas tu nombre en la posición 30 de toda la secuencia.
Además de leer todas las líneas, como has hecho, debes unirlas, para formar una única cadena de caracteres.
Y a continuación, con substr() (no con splice()), ya puedes meter tu nombre dentro de la secuencia (provocando un mutación genética al pobre bacilo, de consecuencias imprevisibles ).
Más información en
- perldoc -f splice
- perldoc -f substr