![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Danissimo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 14.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
my %h = ('x' => '1');
print $h{'x'} . "\n"; работает правильно. Однако use constant KEY => 'x'; my %h = ('x' => '1'); print $h{KEY} . "\n"; Use of uninitialized value in concatenation (.) or string at... Почему? |
|||
|
||||
| ZeeLax |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: нет Всего: 88 |
Дело в том, что константы в Perl не интерполируются как строковые переменные. Но они очень успешно конкатенируются. Так что можно схитрить следующим образом:
Или же можно "представить" что константа - это список из одного элемента и просто написать так:
или же (для надёжности
-------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
||||||
|
|||||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Вот ещё один пример, как можно интерполировать константы и вызовы функций прямо в строке, не используя конкатенацию.
Здесь создаётся анонимный массив состоящий из константы и тут же он разименовывается, в итоге получаем не имя константы, а её значение, не разрывая строки. Например можно было бы записать имя и фамилию вот таким образом:
На первый взгляд может показаться, что необходимо вставить между ними ещё один елемент, с пробелом. Но делать этого не следует, так как наш массив интерполируется в строке, потому пробелы между елементами Perl вставит сам. Это сообщение отредактировал(а) korob2001 - 10.9.2006, 03:51 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| Danissimo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 14.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Да, грамотнее ответа и представить сложно.
ZeeLax, korob2001, спасибо. Большое. |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |