Tôi đang sử dụng sort
với một chương trình con so sánh tùy Tôi đã viết:Tôi có thể chuyển đối số cho chương trình con so sánh sắp xếp trong Perl không?
sub special_compare {
# calc something using $a and $b
# return value
}
my @sorted = sort special_compare @list;
Tôi biết đó là tốt nhất sử dụng $a
và $b
được tự động thiết lập, nhưng đôi khi tôi muốn special_compare
tôi để có thêm lý lẽ, tức là:
sub special_compare {
my ($a, $b, @more) = @_; # or maybe 'my @more = @_;' ?
# calc something using $a, $b and @more
# return value
}
Làm cách nào để làm điều đó?
+1 đẹp và đơn giản! –
Bạn có thể muốn chuyển một tham chiếu đến '@ more' để ngăn nó được sao chép mọi lúc. –
Hoặc chỉ sử dụng mã nội tuyến thay vì gọi một phụ, nếu thích hợp. – mscha