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