Автор Тема: Еще два вопроса:) Вызов функций и Пердача параметров функции.  (Прочитано 3017 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Еще два вопроса:) Вызов функций и Пердача параметров функции.
Привет!
Надеюсь я еще не достал Вас своими вопросами;)
1) В чем отличие вызова функции, когда мы вызываем ее так &someFunc; или someFunc()? Какой вызов лучше использовать?
2) У меня есть функция которая модифицирует массив, т.е. я передаю ссылку \\@m, и дальше с элементами работаю как с $$m[$i], внутри этой функции я делаю вызов другой функции, которая также изменяет массив. Внимание вопрос! Как из первой функции передавать массив второй, и как работать с массивом во второй функции?

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Не знаю в пределах одного скрипта, я не передаю значения переменных и массивов при переходе на функции, они и сами спокойно передаются...

someFunc() - насколько я знаю, в скобках ты указываешь пременную которая передается функции и в функции она используется как $_ - т.е. переменная по умолчанию, это нужно для того, что бы одной функцией производить одинаковые манипуляции для переменных с разными именами...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
P.S. Совсем забыл, при передаче функции нескольких переменных они используются как $_, т.е.

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

...

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

тоже и с массивами...

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как передаются значения это-то понятно.... Вопрос в том, как передавать значение из функции по ссылке, значение в которую, тоже было передано по ссылке

Оффлайн КшЫуфксрук

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://risearch.org/
Вот ссылку и передать.

@arr = (1,2,3);

sub1(\\@arr);

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

sub sub2 {
  my $arr_ref = shift;
...
}

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
КшЫуфксрук
Точно!!! Как сам не допер?:(
Спасибо!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28