estoy usando sort
con una subrutina comparación personalizado que he escrito:¿Puedo pasar argumentos a la subrutina de comparación de tipo en Perl?
sub special_compare {
# calc something using $a and $b
# return value
}
my @sorted = sort special_compare @list;
Sé que es mejor uso $a
$b
y que se ajusta automáticamente, pero a veces me gustaría que mi special_compare
para obtener más argumentos, es decir:
sub special_compare {
my ($a, $b, @more) = @_; # or maybe 'my @more = @_;' ?
# calc something using $a, $b and @more
# return value
}
¿Cómo puedo hacer eso?
+1 ¡agradable y simple! –
Es posible que desee pasar una referencia a '@ more' para evitar que se copie todo el tiempo. –
O simplemente use el código en línea en lugar de llamar a un sub, si corresponde. – mscha