| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > сортировка ХЭША |
| Автор: konst 17.12.2002, 03:47 | ||
| Есть программка: =======
===== Это РАБОТАЕТ!!! Но хотелось бы передавать $field как аргумент фунции my_sort(), Т.е. что-то типа: foreach $x (sort my_sort($field) keys %hash) { Но здесь ERROR |
| Автор: NightGoblin 17.12.2002, 19:09 |
| Если, насколько я понял, переменная $field глобальная, то зачем передавать ее в функцию в качестве параметра?... |
| Автор: konst 17.12.2002, 20:08 |
| >Если, насколько я понял, переменная $field глобальная, то зачем передавать ее в функцию в качестве параметра?... Нет это только example. Просто хочется написать такой модуль с этой подпрограмкой сортировки: sub my_sort { $field_number = shift; #HERE $field_separator = shift;HERE @a = split("$field_separator",$hash{$a}); ... $a[$field_number] <=> $b[$field_number]; ... } и потом его использовать при необходимости. Т.е. мне как раз не нужна global $field А вот как ее передать &my_sort - не понимаю foreach $x (sort my_sort($field) keys %hash) { # если так то ERROR |
| Автор: NightGoblin 19.12.2002, 16:17 | ||
Если действительно надо передать значения как параметры функции, можно написать:
, то есть использовать промежуточную анонимную функцию для вызова my_sort с аргументами. |
| Автор: konst 19.12.2002, 21:42 |
| Спасибо. Это то что я и искал. |