Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Передать список аргументов как список / 3 сообщений из 3, страница 1 из 1
07.02.2014, 10:26
    #38552883
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Передать список аргументов как список
Есть функция и несколько врапперов к ней:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
sub _proc($$$;$$) {
  my $arg1 = shift;
  my $arg2 = shift;
  ...
}
sub proc1($$$) {
  my $msg = shift;
  print "$msg\n";
  return &_proc('proc1', @_);
}
sub proc2($$$;$$) {
  my $msg = shift;
  print "$msg\n";
  return &_proc('proc2', @_);
}


Так не работает, в _proc передается только первый аргумент procX.
Такой способ возможен? Или нужно писать return &_proc('procX',$_[0],$_[1],...)?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
07.02.2014, 15:06
    #38553549
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Передать список аргументов как список
Вопрос не совсем понял ...

Код: php
1.
2.
3.
4.
sub proc1($$$) {
  print sprintf("%s - %s - %s\n", @_);
  return &_proc('proc1', @_);
}
...
Рейтинг: 0 / 0
07.02.2014, 16:06
    #38553691
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(Perl) Передать список аргументов как список
Есть основная процедура, принимающая 3 параметра (+2 опциональных).
Есть вспомогательные процедуры-обертки, которые принимают несколько параметров (от 3 до 5). Первый параметр они выводят в лог, а остальные параметры используют для вызова основной процедуры.
У меня почему-то в процедуру _proc передавался только первый аргумент, передаваемый из procX.
Но сейчас уже все нормально.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) Передать список аргументов как список / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]