Mar May 13, 2008 8:30 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
|
|
|
|
|
Bienvenido a los foros de Perl en Español, ausias.
No, no lo hay, por que es muy fácil hacerlo a mano:
Es más... apuesto a que se puede hacer de doce formas distintas más... ¡Adelante, gente! |
|
Mar May 13, 2008 8:48 am
|
 |
ausias
Perlero Nuevo

|
Registrado: 13 May 2008
Mensajes: 4
|
|
|
|
|
Hola.
En primer lugar muchísimas gracias por la respuesta. Lo que no entiendo bien la tercera línea open my $fh, q[<], $fichero or return -1; ¿Me la podrían explicar en un momento?
Gracias  |
|
Mar May 13, 2008 8:52 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
|
|
|
|
|
| ausias escribió: | | Lo que no entiendo bien la tercera línea open my $fh, q[<], $fichero or return -1; ¿Me la podrían explicar en un momento? |
Pues... abrir (open) el $fichero en modo lectura (q[<]) o salimos de la subrutina con un '-1'. |
|

Mar May 13, 2008 9:24 am
|
 |
ausias
Perlero Nuevo

|
Registrado: 13 May 2008
Mensajes: 4
|
|
|
|
|
En realidad quiero complementar mi función print_LOG, haciendo que, además de imprimir el argumento que se le pase, actualice una variable global que cuenta el número de líneas que va imprimiendo.
Para ello haría algo como:
| Perl: | #!/bin/perl
our $lines;
sub print_LOG () {
my $message = shift;
print $message;
while ($message contenga "\n") {
$message= $message - "\n";
$lines++;
}
}
print_LOG ("missatget\n");
print_LOG ("lalalalala");
print_LOG ("tururú\n\n\n"); |
El valor del $lines llegado a este punto debería ser 4.
¿Sabéis cómo podría implementar:?
| Perl: | while ($message contenga "\n") {
$message=$message - "\n"; |
Muchas gracias |
|
Mar May 13, 2008 9:27 am
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 244
Ubicación: MOnterrey NL
|
|
|
|
|
Si estás trabajando en Linux, podrías utilizar el comando wc *, y te manda el número de línea.  |
|
Mar May 13, 2008 10:09 am
|
 |
ausias
Perlero Nuevo

|
Registrado: 13 May 2008
Mensajes: 4
|
|
|
|
|
Hola:D
Conseguí lo que buscaba:
| Perl: | #!/bin/perl
use strict;
our $count = 1;
sub print_LOG {
my $message = $_[0];
print($message);
$count += ($message =~ tr/\n/\n/ );
}
print "===================\n";
print_LOG ("prova\n");
print_LOG ("a 2u hf\n\n");
print_LOG ("mes\n");
print "\n";
print "===================\n";
print "Te $count linies\n";
exit 0 |
Gracias a todos:)
Por mi puede cerrarse el hilo. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|