Автор Тема: Строка в имени переменной  (Прочитано 4112 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Строка в имени переменной
« : 04 Августа 2006, 13:26:15 »
есть переменная $line="mesto";

Есть переменная $mesto_two="20";

Как сделать что-то вроде ${$line_two}=10
Следовательно $mesto_two будет равно 10...?
Космическая игрушка

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Строка в имени переменной
« Ответ #1 : 04 Августа 2006, 13:49:04 »
Решил сам...

$tmp=$line.\'_two\';
${$tmp}=10; => $mesto_two==10...

Всем спасибо...
Если у кого-то есть более грамотное решение, буду рад его узнать...
Космическая игрушка

Оффлайн Zerokool

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Строка в имени переменной
« Ответ #2 : 28 Августа 2006, 20:49:31 »
Не как не могу понять зачем стольго возни с конструированием имен ссылок. Проще через хэш ИМХО.

Оффлайн KiLLjoY aka SerZH

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Строка в имени переменной
« Ответ #3 : 30 Августа 2006, 15:14:38 »
Строки в имени переменной - это символические ссылки. (Вдруг кто не знает)

Оффлайн ipchains

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ipchains.ru
Строка в имени переменной
« Ответ #4 : 14 Сентября 2006, 20:56:16 »
perldoc -q variable says:
...
       How can I use a variable as a variable name?

       Beginners often think they want to have a variable contain the name of
       a variable.


Что не есть совсем правильно, так же не есть совсем правильно решить проблему через хеш переменных - хеш-хешей.
Но предложенное
${$tmp} = ... является в этом случае наиболее правильным, но вместо $tmp можно было использовать sprintf опять же не вводя лишнюю переменную.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28