• Publicidad

Entrada directa desde el teclado a txt, ¡ no escribe nada !

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Entrada directa desde el teclado a txt, ¡ no escribe nada !

Notapor bl4ckc00k1e » 2009-08-20 18:35 @816

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "\n\nAl terminar de introducir los datos pulsar:\n";
print "Ctrl+D en Unix\n";
print "Ctrl+Z en MS-DOS\n";
print "---------------------------\n";

@datos2 = <STDIN>;
open (LECTURA,">lectura.txt");
foreach $lectura(@datos2)
        {
        print LECTURA $lectura;
        }
close (LECTURA);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Antes, en un momento del programa sí me iba, pero de repente corrigiendo pequeños fallos dejó de irme... y no sé por qué.

Le he dado permisos y todo por si las moscas... y nada.

Quiero que todo lo que escribas en consola lo guarde en el .txt, hasta que la cierras.
Última edición por explorer el 2009-08-20 19:00 @833, editado 2 veces en total
Razón: Ortografía, bloques de código
Imagen
Avatar de Usuario
bl4ckc00k1e
Perlero nuevo
Perlero nuevo
 
Mensajes: 22
Registrado: 2009-08-14 21:56 @956

Publicidad

Re: Entrada directa desde el teclado a txt, ¡ no escribe nada !

Notapor explorer » 2009-08-20 19:04 @836

Prueba con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @datos2 = <STDIN>;
open (LECTURA,">lectura.txt")   or die "ERROR al abrir: $!\n";
print LECTURA @datos2           or die "ERROR al escribir: $!\n";
close LECTURA                   or die "ERROR al cerrar: $!\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y mira a ver si sale algún error.

Observa también cómo mandamos todo el arreglo de golpe al fichero de salida.
Última edición por explorer el 2009-08-20 19:05 @837, editado 1 vez en total
Razón: Tipo
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Entrada directa desde el teclado a txt, ¡ no escribe nada !

Notapor bl4ckc00k1e » 2009-08-21 06:47 @324

¡Oh!, muy interesante los "or die". Funciona el tuyo, y funciona el mío...
El problema era que pulsaba "Control+C" en vez de "Control+D", por lo que cortaba el proceso antes de que guardara... se me fue la cabeza :S

Así que toda acción, le puedes poner or die, de tal forma que si hay algún error, te sale el mensaje que tu le pongas, ¿no? ¿Se puede poner también una función en or die? ¿o solo un mensaje?

Otra pregunta es, ¿cómo hago para que guarde todo lo escrito, incluso fuera de la consola? Es decir, que recoja todas las pulsaciones del teclado, como si fuese un keylogger, creo que se necesita ya un módulo para eso, ¿no?

Como siempre, gracias, explorer. Haces honor a tu nick xD
Última edición por explorer el 2009-08-21 07:16 @344, editado 1 vez en total
Razón: Ortografía
Imagen
Avatar de Usuario
bl4ckc00k1e
Perlero nuevo
Perlero nuevo
 
Mensajes: 22
Registrado: 2009-08-14 21:56 @956

Re: Entrada directa desde el teclado a txt, ¡ no escribe nada !

Notapor explorer » 2009-08-21 07:30 @354

No, no puedes poner or die() a todas las funciones.

Lo que ocurre es que sé que esas funciones devuelven undef cuando ocurre un error, por lo que, gracias al operador 'or' sé que se ejecutará la siguiente expresión, que en este caso es un die().

Por eso no puedes ponerlo a todas las funciones, porque no todas las funciones devuelven un valor booleana falso cuando ocurre un fallo.

En cuanto a los keylogger, pues no me sale ninguno en CPAN. Quizás he buscado mal. Prueba tu mismo :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron