• Publicidad

Funciones y 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.

Funciones y parámetros

Notapor lacris » 2016-04-25 04:43 @238

Buenos días.

Quiero hacer un CGI que, entre otras cosas, a partir de un string, y con un patrón que yo calculo, me devuelva otro.

Como el CGI hace varias cosas, yo en un momento dado lo que quería era estructurar la programación haciendo una llamada dentro del propio CGI a una función que me devuelva el string "calculado".

Algo así como:

my $cadena_calculada = calcula_cadena($cadena);

El problema que tengo es a la hora de recoger el parámetro en la función:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub calcula_cadena {
  2.     my $recogida = @_; # --> intuyo que esto es lo que hago mal ya que me da error y si lo imprimo me sale vacío
  3.  
  4.     my $para_devolver = ...............  # (diferentes cálculos)
  5.  
  6.     return $para_devolver;
  7. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¡Muchas gracias por la ayuda!
Cristina
lacris
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2016-04-18 10:38 @484

Publicidad

Re: Funciones y parámetros

Notapor explorer » 2016-04-25 16:27 @727

La línea

my $recogida = @_;

lo que hace es calcular el número de elementos que contiene @_, y guardarlo en la variable $recogida. Y creo que no es eso lo que quieres hacer.

Esto es así porque estás poniendo una variable array en contexto escalar (hay una variable escalar en el lado izquierdo).

Si lo que quieres es pasar el primer argumento pasado a calcula_cadena() a la variable $recogida, debes escribirlo de una de estas formas:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
    my($recogida) = @_;    # contexto de lista: recuperamos el primer valor de @_ y lo dejamos en la variable

    my $recogida = shift;  # shift(), sin argumento, y dentro de una sub., se aplica por defecto a @_. Lo que hace es "sacar" el primer valor de @_

    my $recogida = $_[0];  # accedemos, directamente, al primer elemento de @_
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
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

Re: Funciones y parámetros

Notapor lacris » 2016-05-12 09:13 @425

¡Muchas gracias, explorer!
lacris
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2016-04-18 10:38 @484


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 0 invitados