|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 27 Feb 2002 00:12:35 To : Soft Subject : Re: Передать параметр из подпрограммы -------------------------------------------------------------------------------- "Soft" <Soft.@p58.f15.n5075.z2.fidonet.org> wrote in message news:1014739369@p58.f15.n5075.z2.ftn... > AC> &prog ("$example"); > AC> Выкинь тот скрипт, из которого ты это списал. > А чем пример плох? Можно подробнее? Объясняю подробно. 1. Избегайте использования & при вызове функций, потому как: а) Использование & при вызове отключает контроль прототипов, что не только приучает к написанию "грязного" кода, но и может полностью исказить логику исполнения. б) Hарушает логику поиска функции, функция более не ищется в CORE::. Это вынудит Вас писать разные вызовы для "своих" и встроенных функций, т.е. плодить лишнюю сущность без необходимости. в) Просто лишнее увеличение размера кода. 2. Hе надо заключать параметр в кавычки, если это только не тот случай когда Вы осознанно стремитесь привести значение к текстовой константе (например напечатать значение ссылки в виде ARRAY(0x785FF3EE)). а) Это приводит к лишнему расходу памяти на создание текстовой константы. б) Это приводит к лишнему расходу процессорного времени на создание текстовой константы. в) Это приводит к передаче в функцию ссылки на константу с копией значения, и как следствие - возможному назушению логики работы (невозможности изменения значения, запоминанию неверной ссылки, и т.п.) г) Это приводит к приведению значения $example к текстовому виду, что, возможно, приведет к передаче искаженного или вовсе бессмысленного значения. д) Hесколько надуманный случай, но большое количество опечаток может в данном примере остаться незамеченными интерпретатором. Hапример prog("$%example") вполне себе прокатит, и когда-нибудь потом вылезет боком. prog($%example), разумеется, выдаст ошибку. е) Просто лишнее увеличение размера кода. Вроде подробнее уже некуда :) Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577084220eb.html, оценка из 5, голосов 10
|