Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Perl


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Perl / Перл

Выпуск № 77
от 09.12.2006, 06:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 161, Экспертов: 14
В номере:Вопросов: 1, Ответов: 2


Вопрос № 65443: Ув. эксперты, делитесь знаниями! Кто такой our? Чем различаются переменные, объявленные с помощью our, my или просто присваиванием? Есть ли ещё какие-либо операторы вроде my и our?...

Вопрос № 65.443
Ув. эксперты, делитесь знаниями!
Кто такой our?
Чем различаются переменные, объявленные с помощью our, my или просто присваиванием? Есть ли ещё какие-либо операторы вроде my и our?
Отправлен: 04.12.2006, 05:46
Вопрос задал: Олег Владимирович (статус: 7-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: -OC-
Здравствуйте, Олег Владимирович!
our- оператор служащий для обозначения лексической области видимости переменной, а в часности - для об"явления глобальных переменных.
Помимо our для об"явления лексических областей видимости служат переменные my и local. my обявляет "закрытые" переменные, local- переменные с динамической областью видимости.
Более подробно читайте в документации, на офф. сайте, в литературе.
1.perldoc -f our
perldoc -f my
perldoc -f local
2. http://perldoc.perl.org/functions/our.html
http://perldoc.perl.org/functions/my.html
http://perldoc.perl.org/functions/local.html
3. " Программирование на Perl" Л. Уолл, Т. Кристиансен, Дж. Орвант (т.н. "Camel book". Не поленитесь приобрести его и там вы найдете практически ответы на все вопросы, связанные с Perl)
Ответ отправил: -OC- (статус: Студент)
Ответ отправлен: 04.12.2006, 09:57
Оценка за ответ: 5

Отвечает: Хватов Сергей
Здравствуйте, Олег Владимирович!

ещё есть local

и если у вас используется use strict (что я вам очень рекомендую), вам придётся все используемые переменные объявлять с помощью local, our или my. Это конечно несколько неудобно, зато уберегает от опечаток и прочих глупостей.

Различаются они реализацией, впрочем она видима программно, но только если use strirt не используется.
local переменные - на самом деле глобальные, просто при входе в объект они переинициализируются, а при выходе их старое значение восстанавливается (если оно было). Это медленно, зато они доступны из других мест, например, из функций вызванных той, где эта local переменная объявлена.
my - это действительно локальная переменная, доступная только там, где она объявлена.
our - это вообще устаризм. для чего был введён - уже не помню. Похоже, что для объявления глобальных переменных - в каких-то версиях local и my вне функций были недопустимы.


Ответ отправил: Хватов Сергей (статус: 10-ый класс)
Ответ отправлен: 04.12.2006, 12:22


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное