Hola:
Lo primero que tenemos que hacer es ver donde se encuentra el error, para ello hay que hacer una verificación de errores:
Código:
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
# cargar la cuenta actual e incrementarla
open my $in, '<', 'cuenta.dat' or die("No se pudo leer el archivo: $!");
my $contador = <$in>;
close $in;
print $contador, "\n";
#Incremento del contador
$contador++;
# guardar la nueva cuenta
open my $out, '>', 'cuenta.dat' or die("No se pudo abrir archivo para escritura: $!");
print {$out} $contador;
close $out;
exit(1);
Nota que le agregamos los warnings y usamos el pragma strict. Esos son hábitos que te conviene tomar para que tus códigos sean más robustos.
Saludos