# вот кусок кода программы majordomo, конкретно начало sub subscribe sub do_subscribe { # figure out what list we are trying to subscribe to # and check to see if the list is valid local($sm) = "subscribe"; local($list, $clean_list, @args) = &get_listname($sm, 1, @_); # и здесь функции &get_listname передаются 3 аргумента!!! # и мне не понятно где они используются в описании sub get_listname, вот оно: sub get_listname { local($request, $required, @args) = @_; local($raw_list, $clean_list); if (defined($deflist)) { # -l option specified if (scalar(@args) <= $required) { # minimal arguments, use default list if ( !( ($raw_list = $deflist) && ($clean_list = &valid_list($listdir, $raw_list)) ) ) { $raw_list = shift(@args) || &squawk("$request: which list?"); $clean_list = &valid_list($listdir, $raw_list); } } elsif ( !( ($raw_list = shift(@args)) && ($clean_list = &valid_list($listdir, $raw_list)) ) ) { unshift(@args, $raw_list); # Not a list name, put it back. $raw_list = $deflist || &squawk("$request: which list?"); $clean_list = &valid_list($listdir, $raw_list); } } else { $raw_list = shift(@args); $clean_list = &valid_list($listdir, $raw_list); } return ($raw_list, $clean_list, @args); }