15.03.2020 Views

perl-language-es

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Para evitar obstruir las variables de su interlocutor, por lo tanto, es importante copiar @_ a las

variables de ámbito local ( my ... ) como se describe en "Crear subrutinas".

Subrutinas

Código de espera de subrutinas. A menos que se especifique lo contrario, se definen

globalmente.

# Functions do not (have to) specify their argument list

sub returns_one {

# Functions return the value of the last expression by default

# The return keyword here is unnecessary, but helps readability.

return 1;

}

# Its arguments are available in @_, however

sub sum {

my $ret = 0;

for my $value (@_) {

$ret += $value

}

return $ret;

}

# Perl makes an effort to make parens around argument list optional

say sum 1..3; # 6

# If you treat functions as variables, the & sigil is mandatory.

say defined ∑ # 1

Algunas incorporaciones como print o say son palabras clave, no funciones, por lo que, por

ejemplo, &say no está definido. También significa que puede definirlos, pero tendrá que especificar

el nombre del paquete para llamarlos

# This defines the function under the default package, 'main'

sub say {

# This is instead the say keyword

say "I say, @_";

}

# ...so you can call it like this:

main::say('wow'); # I say, wow.

5.18.0

Desde Perl 5.18, también puede tener funciones no globales:

use feature 'lexical_subs';

my $value;

{

# Nasty code ahead

my sub prod {

my $ret = 1;

$ret *= $_ for @_;

$ret;

https://riptutorial.com/es/home 102

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!