• Publicidad

Paso de parámetros

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

Paso de parámetros

Notapor davidlo » 2007-01-24 07:02 @335

Hola, tengo un problema al pasar parámetros en la llamada a un método.

Tengo algo así: en primer lugar una clase con este aspecto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/env perl
package control;

use strict;
use warnings;
use FicheroCont;

sub new{

my $clase =shift;
my $self ={};
 
 $self->{fcont} = FicheroCont->new();

bless ($self,$clase);
return $self;

}

sub opera{

my $self = shift;
$fcont->operacion("3");
return;

}

1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

En la clase FicheroCont tenemos lo siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/env perl
package FicheroCont;
use strict;
use warnings;

sub new{
..........
}

sub operacion{
   
   my $self = shift;
   my $id = shift;


   print ("DEBUG: identificador recuperado... ".$id);


    return;

}
1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El script principal es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

use strict;
use warnings;
use control;

my $ctrl = control->new();

$ctrl->opera();

__END__
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Al invocar al método operacion de la clase FiceroCont, aparece en pantalla el siguiente mensaje:

DEBUG: identificador recuperado...30

En lugar de

DEBUG: identificador recuperado...3


He comprobado que siempre añade un 0 al final. ¿Por qué?
davidlo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2006-11-11 05:58 @290
Ubicación: Sevilla, España

Publicidad

Notapor explorer » 2007-01-24 08:03 @377

He tenido que hacer unos cuantos cambios... pero a mí me sale bien...

En FicheroCont he metido estas líneas:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub new {
    my $class = shift;
    my $self = {};
    bless ($self,$class);
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y en control.pm he corregido la línea 23 a:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$self->{fcont}->operacion("3");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
pero el resultado es correcto: "3";

Apuesto a que ese 0 sale del resultado de alguna operación o print consecuente.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor davidlo » 2007-01-24 11:29 @520

Efectivamente, los cambios son oportunos y está así en el original (al intentar quitar morralla para dejar sólo el código donde aparece el problema se me pasó meter eso).

Y el 0 procede de un print siguiente, como tú dices. Ya me parecía raro.. jeje

gracias.
davidlo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2006-11-11 05:58 @290
Ubicación: Sevilla, España


Volver a Básico

¿Quién está conectado?

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