He estado trabajando con Perl durante aproximadamente dos meses; simplemente se me ocurrió que no sé cómo establecer argumentos predeterminados para las subrutinas. Esto es lo que consideré:Valores de argumento predeterminados en las subrutinas
sub hello {
print @_ || "Hello world";
}
Y eso funciona bien si todo lo que necesita era un argumento. ¿Cómo establecería valores predeterminados para múltiples argumentos? Iba a hacer esto:
sub hello {
my $say = $_[0] || "Hello";
my $to = $_[1] || "World!";
print "$say $to";
}
Pero eso es mucho trabajo ... Debe haber una manera más fácil; posiblemente una mejor práctica? ¡Gracias!
Sí me trataron 'impresión @_ // "Hola mundo",' 'pero me dio 0' ... – David
@Davidmoreen: probar una matriz para definir no es útil – ysth
@Davidmoreen, la forma correcta de decir que es 'print $ _ [0] //" Hello world ";'. Como ya dijo, no puede usar 'defined' en una matriz (que es lo que' // 'significa), porque una matriz en contexto escalar devuelve su longitud, que siempre está definida. – cjm