Hola:
Usando el módulo
Tie::File como te recomienda Perl User, es muy sencillo lograr lo que quieres.
Por ejemplo, editar la línea 153 así como quieres es tan sencillo como:
Using perl Syntax Highlighting
use strict
;
use Tie
::File;
#Archivo que quieres editar
my $archivo = '/ruta/a/tu/archivo.txt';
#Definimos el array que vamos a usar
my @contenido;
#Empieza la magia
tie @contenido, 'Tie::File', $archivo or die "No se logró hacer el tie: $!";
#Cambiamos la línea 153
# Recuerda que como el array tiene un elemento 0
# la línea 153 realmente es el elemento 152
$contenido[152] = 'Nuevo contenido';
#Eso es todo...wow! ¡Magia!
untie @contenido;Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
El módulo hace un cache del archivo para agilizar las cosas, sin embargo tienes la capacidad de modificar la cantidad de memoria que quieres que use el módulo.
Por ejemplo, puedes poner el límite de memoria a 0, evitando de esta manera que se haga un cache del archivo, por lo que el módulo lee directamente del disco:
Using perl Syntax Highlighting
tie @contenido, 'Tie::File', $archivo, memory
=> 0
or die "No se logró hacer el tie: $!";Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Lógicamente entre más capacidad de cache tengas, más rápido se va a realizar el trabajo.
Saludos