![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Привет всем!
Вопрос: могу ли я подставить в имя переменной $cntXXX вместо XXX значения массива, чтобы получилось имя переменной ?
Спасибо. Это сообщение отредактировал(а) meridian - 26.11.2009, 20:14 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
meridian, мне кажется, что лучше вместо этих переменных использовать хэш.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Слушай, ты в корне прав! Спасиб! |
|||
|
||||
| meridian |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Я правильно понял ? Только вопрос... переменные $cntSubm0_5 в кавычках или нет ?
|
||||||
|
|||||||
| Egik2 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 29.7.2008 Где: Агудзера Репутация: 1 Всего: 11 |
Ну а вообще, принципиально, при помощи какого-нибудь evala можно такое сделать?
Добавлено через 3 минуты и 16 секунд Если ты возмешь их в одинарные кавычки, получится, значения хэша - просто строки вида '$cnt0_5', и никаких переменных Чтобы были переменные, надо без кавычек. Только эти $cnt0_5 где-нить до этого надо инициализировать. Добавлено через 11 минут и 8 секунд А первую задумку можно реализовать так: my @ArrPeriod = qw( 0_5 6_10 11_15 16_20 21_25 26_30 g30 g180 g365); foreach my $i (@ArrPeriod) { $ent->SetFieldValue($INZ1AGE_T_SUBM_F, eval('$cnt'.$i)); } -------------------- Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall) a-nav.com developer-blog.ru world-poetry.org |
|||
|
||||
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
OK, спасибо!
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
meridian, скажите, зачем Вам отдельные переменные, почему нельзя в хэш подставить сразу значения?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| meridian |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Переменные вычисляемые, не константы. |
||||
|
|||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
meridian, я вопрос про переменные к тому написал, что если они в программе используются редко, то разумнее их совсем заменить на хэш, т.е. в программе вместо $cnt0_5 использовать $ArrPeriod{0_5}.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Да нет, вроде используются часто.
Кстати, с eval('$cht'.$i) не получилось получаю значения .
выхлоп hh=0, i=0,5 а хотел $cht0_5 Это сообщение отредактировал(а) meridian - 27.11.2009, 14:57 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
а если значение $i исправить на '0_5'? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| Egik2 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 29.7.2008 Где: Агудзера Репутация: 1 Всего: 11 |
А чем выражается, то что не работает? Может проблема в том, что в eval у вас '$cht' вместо '$cnt'? У меня ваш блок кода отлично отработал
Вывело: hh=123, i=0_5 Это сообщение отредактировал(а) Egik2 - 27.11.2009, 18:46 -------------------- Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall) a-nav.com developer-blog.ru world-poetry.org |
|||
|
||||
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
||||
|
||||
| Egik2 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 29.7.2008 Где: Агудзера Репутация: 1 Всего: 11 |
И по прежнему не работает?
-------------------- Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall) a-nav.com developer-blog.ru world-poetry.org |
|||
|
||||
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |