Не совсем компетентен в данном вопросе, но попробую помочь.18.02.05 16:10 Число просмотров: 1860 Автор: dr Tr0jan Статус: Незарегистрированный пользователь
В моём скрипте из двух разных подпрограмм в определенных случаях вызывается третья. Можно ли каким-то образом узнать, из какой именно подпрограммы была вызвана эта подпрограмма?
[Perl] Дык передавай отдельным параметром, откуда тебя вызвали18.02.05 16:17 Автор: amirul <Serge> Статус: The Elderman
Не совсем компетентен в данном вопросе, но попробую помочь.
А если из подпрограммы какой-нибудь флаг (переменнную) передавать?
то есть в каждой из двух первых подпрограмм давать...19.02.05 02:12 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member Отредактировано 19.02.05 02:27 Количество правок: 2
> Не совсем компетентен в данном вопросе, но попробую помочь. > А если из подпрограммы какой-нибудь флаг (переменнную) > передавать? то есть в каждой из двух первых подпрограмм давать переменной определенное значение, а в третьей проверять это значение? если да, то мне нужно что-нибудь более изящное ;)
а чем этот способ не нравится?19.02.05 08:09 Автор: Heller <Heller> Статус: Elderman
да я не сказал, что он мне не нравится ;)
просто, во-первых, немного запутался - я перепутал присваивание значение переменной с передачей параметра подпрограмме.
а во-вторых, наедялся, что найдется другой способ, ведь девиз Perl'a "There's more than one way to do it" ;)
спасибо за помощь! ;)
можно пять копеек?22.02.05 00:05 Автор: whiletrue <Роман> Статус: Elderman Отредактировано 22.02.05 00:12 Количество правок: 1
> да я не сказал, что он мне не нравится ;) > просто, во-первых, немного запутался - я перепутал > присваивание значение переменной с передачей параметра > подпрограмме. > а во-вторых, наедялся, что найдется другой способ, ведь > девиз Perl'a "There's more than one way to do it" ;) > спасибо за помощь! ;)
Твоя же процедура должна вести себя по-разному, взависимости от чего-то. В твоем случае от того откуда она вызвана. Чем это не ее параметр? Однако, предлагаю чуть побольше абстрагирваться, т.е. пусть этот параметр означает не то из какой процедуры она вызвана, а то в чем различия в функциональности. Напрмер: "Печатать в STDOUT или в STDERR", "Выводить варнинги или нет", "Прибавлять счетчик или нет" и т.д. А то вдруг тебе понадобится ее еще в третьей процедуре использовать - тогда придется ее переписывать...
в "во-первых" как раз и приведен альтернативный (собственный), но менее удачный способ :-)21.02.05 19:43 Автор: LLL <Алексей> Статус: Member
Не понял... Всмысле? А есть другие варианты? Если только объекты прикрутить, но это ещё менее удачно, имхо.21.02.05 21:45 Автор: Heller <Heller> Статус: Elderman
Выше предлагали передавать парметр в процедуру, а n0xi0uzz понял, что признак вызывающего предложено передавать через переменную (глобальную).
Это и есть альтернативный способ, на существование которого намекал n0xi0uzz, но передача параметром выглядит явно лучше.