Hola:
Lo primero es que debes de acostumbrarte a
usar el pragma strict, te va a ayudar a hacer mucho mejor código.
Ahora tu código podría quedar así:
Código:
my $usu = "monica";
sub muestra {
#Creamos la variable de archivo
my $file = $usu . ".txt";
#Checamos si existe el archivo
if(-e $file){
open my $in, '<', $file or die("No se pudo abrir el archivo: $!");
my @file = <$in>;
close $in;
#Asignamos el contenido de @usuarios
#a las variables
my ($n_cuenta,$mov1,$din1,$mov2,$din2,$mov3,$din3,$mov4,$din4,$saldo) = @usuario;
my $nuevo = 4556;
#Abrimos para escritura
open my $out, '>', $file or die("No se pudo abrir el archivo: $!");
print {$out} "$n_cuenta";
print {$out} "$mov2";
print {$out} "$din2";
print {$out} "$mov3";
print {$out} "$din3";
print {$out} "$mov4";
print {$out} "$din4";
print {$out} "Reintegro cajro";
print {$out} "$saldo";
print {$out} "saldo";
print {$out} "$nuevo";
close $out;
}
}
muestra();
Ahora no sé muy bien lo que quieres hacer, pero creo que cuando asignas las variables del array
@usuario, realmente lo quisieras hacer del array
@fichero, ahí podría estar tu error.
Saludos