Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 04 Августа 2006, 13:26:15

Название: Строка в имени переменной
Отправлено: Error202 от 04 Августа 2006, 13:26:15
есть переменная $line="mesto";

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

Как сделать что-то вроде ${$line_two}=10
Следовательно $mesto_two будет равно 10...?
Название: Строка в имени переменной
Отправлено: Error202 от 04 Августа 2006, 13:49:04
Решил сам...

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

Всем спасибо...
Если у кого-то есть более грамотное решение, буду рад его узнать...
Название: Строка в имени переменной
Отправлено: Zerokool от 28 Августа 2006, 20:49:31
Не как не могу понять зачем стольго возни с конструированием имен ссылок. Проще через хэш ИМХО.
Название: Строка в имени переменной
Отправлено: KiLLjoY aka SerZH от 30 Августа 2006, 15:14:38
Строки в имени переменной - это символические ссылки. (Вдруг кто не знает)
Название: Строка в имени переменной
Отправлено: ipchains от 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 опять же не вводя лишнюю переменную.