Forum Webscript.Ru

Программирование => Perl => Тема начата: C++ от 25 Апреля 2003, 22:28:10

Название: Еще два вопроса:) Вызов функций и Пердача параметров функции.
Отправлено: C++ от 25 Апреля 2003, 22:28:10
Еще два вопроса:) Вызов функций и Пердача параметров функции.
Привет!
Надеюсь я еще не достал Вас своими вопросами;)
1) В чем отличие вызова функции, когда мы вызываем ее так &someFunc; или someFunc()? Какой вызов лучше использовать?
2) У меня есть функция которая модифицирует массив, т.е. я передаю ссылку \\@m, и дальше с элементами работаю как с $$m[$i], внутри этой функции я делаю вызов другой функции, которая также изменяет массив. Внимание вопрос! Как из первой функции передавать массив второй, и как работать с массивом во второй функции?
Название: Еще два вопроса:) Вызов функций и Пердача параметров функции.
Отправлено: Phoinix от 26 Апреля 2003, 12:10:30
Не знаю в пределах одного скрипта, я не передаю значения переменных и массивов при переходе на функции, они и сами спокойно передаются...

someFunc() - насколько я знаю, в скобках ты указываешь пременную которая передается функции и в функции она используется как $_ - т.е. переменная по умолчанию, это нужно для того, что бы одной функцией производить одинаковые манипуляции для переменных с разными именами...
Название: Еще два вопроса:) Вызов функций и Пердача параметров функции.
Отправлено: Phoinix от 26 Апреля 2003, 12:15:47
P.S. Совсем забыл, при передаче функции нескольких переменных они используются как $_, т.е.

somefunc($var1, $var2, $var3);

...

sub somefunc {
...
$_[0] - значение var1
$_[1] - значение var2
$_[2] - значение var3
...
}

тоже и с массивами...
Название: Еще два вопроса:) Вызов функций и Пердача параметров функции.
Отправлено: C++ от 26 Апреля 2003, 13:13:06
Как передаются значения это-то понятно.... Вопрос в том, как передавать значение из функции по ссылке, значение в которую, тоже было передано по ссылке
Название: Еще два вопроса:) Вызов функций и Пердача параметров функции.
Отправлено: КшЫуфксрук от 26 Апреля 2003, 21:12:12
Вот ссылку и передать.

@arr = (1,2,3);

sub1(\\@arr);

sub sub1 {
  my $arr_ref = shift;
...
  sub2($arr_ref);
}

sub sub2 {
  my $arr_ref = shift;
...
}
Название: Еще два вопроса:) Вызов функций и Пердача параметров функции.
Отправлено: C++ от 27 Апреля 2003, 00:39:25
КшЫуфксрук
Точно!!! Как сам не допер?:(
Спасибо!