• Publicidad

Pasaje de un vector a un metodo de un objeto

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

Pasaje de un vector a un metodo de un objeto

Notapor Sebastian N » 2011-02-19 00:20 @055

Gente:
Estoy teniendo un problema, y probé de todo y nada me funciona.

método:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub procesarUrls
  2. {
  3.   my $self=shift;
  4.   my @urls=shift;
  5.   my @textos;
  6.   my $key;
  7.   my $value;
  8.  
  9. #print Dumper(@urls);
  10.  
  11.  
  12.   #for(my $i=0;$i<=$#urls;$i++)
  13.   foreach $value (@urls)
  14.   {
  15.       print "valor: $value \n";
  16.  
  17.       #print "url: $urls[$i] \n\n";
  18.       #$self->getDataClarin($urls[$i]);
  19.       #$self->mostrarAtributos();
  20.       #push(@textos,$self->getText());
  21.       #$self->setText();
  22.   }
  23.   return @textos;
  24. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



Invocación:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. @urls=$esc->getLinkHome($html);
  2. $esc->procesarUrls(@$urls);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



probé pasarlo con @, con %, etc. pero no hay caso lo único que logro mostrar en la dirección donde está el array: ARRAY(0x8d9e400)

con el print Dumper veo lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $VAR1 = [
  2.           [
  3.             'http://www.clarin.com/ciudades/capital_federal/Tension-Recoleta-delincuentes-entraron-edificio_0_319168239.html',
  4.             'http://www.clarin.com/ciudades/capital_federal/desplomo-grua-obra-edificios-Canitas_0_426557454.html',
  5.             'http://www.clarin.com/ciudades/capital_federal/Vido-cargo-responsabilidad-accidente-Provincia_0_428957290.html',
  6.             'http://www.clarin.com/ciudades/capital_federal/Arranca-manana-paritaria-docente-portena_0_429557260.html',
  7.             'http://www.clarin.com/ciudades/capital_federal/Amplio-operativo-tercerizados-boleterias-Constitucion_0_427157476.html',
  8.             'http://www.clarin.com/ciudades/capital_federal/Define-Justicia-hace-comisaria-Chacarita_0_428357282.html',
  9.             'http://www.clarin.com/ciudades/capital_federal/Susto-incendio-centro-porteno_0_428357394.html',
  10.             'http://www.clarin.com/ciudades/capital_federal/Piden-Justicia-extendio-antiguedad-escolares_0_428957311.html',
  11.             'http://www.clarin.com/ciudades/capital_federal/Quieren-bajar-volumen-boliches-Ciudad_0_428357286.html',
  12.             'http://www.clarin.com/ciudades/capital_federal/Lanzan-campana-impulsar-reciclaje-basura_0_427757342.html',
  13.             'http://www.clarin.com/ciudades/capital_federal/cuadras-choques-dejaron-heridos-Ciudad_0_427157452.html',
  14.             'http://www.clarin.com/ciudades/capital_federal/rosas-lagrimas-inauguran-homenajear-Sandro_0_427757343.html'
  15.           ]
  16.         ];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿cómo podría recorrerlo desde el método del objeto?
probé pasar el vector con % o @ pero no hay caso.

¿alguien me puede ayudar?

Saludos
Sebastian

Edito:
Listo, ya encontré cómo hacerlo se hace con:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. Generic( \@array, "WE" , "HIGH" , "DOWN");
  2. sub Generic {
  3.            my ($ref, $w, $h, $d) = @_;
  4.         foreach my $file (@{$ref}) {
  5.                 print "Now Processing $file ...\n";
  6.         };
  7.  
  8.         print "$w\n";
  9.         print "$h\n";
  10.         print "$d\n";
  11.  
  12. }
  13.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Gracias de todos modos

Saludos
Sebastian
Sebastian N
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2010-10-23 20:59 @916

Publicidad

Re: Pasaje de un vector a un metodo de un objeto

Notapor explorer » 2011-02-19 13:53 @620

Creo que lo correcto sería
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $urls = $esc->getLinkHome($html);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Es decir, obtenemos la referencia al array que contiene las URL. Y ese valor debe ser un escalar (una referencia es solo un valor).

Y luego
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $esc->procesarUrls(@$urls);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


que era lo que tenías. El '@' desreferencia $urls, extrayendo toda la lista de URL.
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: Google [Bot] y 39 invitados