|
|
|
|
|
для: Trianon
(16.02.2011 в 11:47)
| | Страшные конструкции, согласитесь. В Perl для подобных вещей есть символические ссылки.
sub myfunc {
dumper(\@_);
}
my $func = 'myfunc';
&$func('param','pam','pam');
|
Хотя я понимаю конечно, что это все особенности языков. В принципе, нет особой разницы между тем, чтобы передавать массив как ссылку на массив и как реальный массив в функцию.
Например, в Perl для передачи массива как одного аргумента, нужно передавать его как ссылку:
sub myfunc {
dumper($_[0]);
}
my @list = (1,2,3);
myfunc(\@list);
|
Это выведет дамп массива @list, а не 1 как было бы, если бы мы передавали @list вместо \@list. | |
|
|
|
|
|
|
|
для: SHAman
(16.02.2011 в 11:40)
| | В php есть call_user_funс / call_user_method в качестве альтернативы. | |
|
|
|
|
|
|
|
для: Alph[p]a
(16.02.2011 в 11:31)
| | А в чем проблема-то? Почему принципиально передавать именно несколько параметров?
Кстати, прикольно. В Perl такой проблемы нет. Там если передавать массив, то придет не один аргумент "массив" а набор элементов этого массива. То есть запись
@list = (2,2);
in(@list);
|
равносильна
как вы хотите. | |
|
|
|
|
|
|
|
для: cheops
(16.02.2011 в 11:27)
| | вообщем придется разбирать массив уже внутри самой функции | |
|
|
|
|
|
|
|
для: SHAman
(16.02.2011 в 11:23)
| | Аргумент все-равно один будет. | |
|
|
|
|
|
|
|
для: Alph[p]a
(16.02.2011 в 11:23)
| | Если хотите динамически формировать переменное количество аргументов, то придется действовать через eval(). А зачем потребовалось именно так, почему бы не воспользоваться аргументом-массивом? | |
|
|
|
|
|
|
|
для: SHAman
(16.02.2011 в 11:23)
| | Number of arguments: 1 Argument 0 is: Array
придется разбирать массив уже в функции... вопрос остался как? | |
|
|
|
|
|
|
|
для: Alph[p]a
(16.02.2011 в 10:35)
| |
$list = Array(2,2);
in($list);
|
| |
|
|
|
|
|
|
|
для: cheops
(16.02.2011 в 11:10)
| | логичный вопрос как тогда это сделать? | |
|
|
|
|
|
|
|
для: Alph[p]a
(16.02.2011 в 10:35)
| | Так не пойдет, строку функция примет в качестве одного параметра, выдать её за два - не выйдет. | |
|
|
|
|