![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
Kannabismus, сказано же, что всё сам... это если в коде явно надо, то естественно, а это новый стиль, он не может стать хуже
![]() ![]() ![]() |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Kannabismus,
Объяснять несколько раз я не собираюсь, не нравится - программируй как хочешь... GoodBoy, не только. Почитай perldoc perlref и perldoc perlreftut, сравни, потестируй, посмотри сколько памяти тратится и т.д. Это сообщение отредактировал(а) sharq - 5.5.2006, 17:06 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
Kannabismus |
|
|||
Тим Тоуди Профиль Группа: Участник Сообщений: 45 Регистрация: 20.11.2005 Репутация: 1 Всего: 2 |
Не "open my" плохо, а незакрывать хэндлы! Объяснять несколько раз я не собираюсь
![]() |
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Дескрипторы всегда можно было не закрывать, но это считается плохим стилем. Зачем держать открытым дескриптор, если он больше не используется? Это допустимо только в том случае, если у тебя подпрограмма открывает файл, что-то делает с ним и на том её выполнение заканчивается. Например:
Здесь дескриптор закрывать не обязательно, так как он сразуже уничтожается, как только сделана запись в файл, т.е. закончилась лексическая область видимости переменной объявленной как my, в нашем случае $fh. Но если нужно ещё что-то сделать, в теле подпрограммы и оно не имеет прямого отношения к фалу, то помоему гораздо разумнее закрыть его явно. Например:
В данном случае просто выводится сообщение, но можно было бы конечно делать и что-нить другое. Вобщем если у тебя в начале программы открывается дескриптор и что-то делется с ним, а далее идёт код, который не имеет никакого отношения к файлу, то лучше его закрыть сразу же, когда в нём нет нужды. Потому как такой дескриптор будет уничтожен только тогда, когда закончится его область видимости, в примерах выше, это тело подпрограммы, но это может быть и тело всей программы, если дескриптор открывался как глобальный. Это особенно нужно делать в том случае, когда файл блокируется, для того, что бы освободить очередь немедленно, как только зканчилась работа с файлом. Это сообщение отредактировал(а) korob2001 - 5.5.2006, 21:23 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Kannabismus, читай внимательно, что я написал.
Хендел нужно закрывать тогда, когда это действительно необходимо! А в приведенном выше примере - это необходимость отпадает! -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |