злой чечен ползет на берег - [entries|archive|friends|userinfo]
aculeata

[ website | Барсук, детский журнал ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

[Sep. 21st, 2011|11:14 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
And now for something completely different --
теперь идиотские вопросы касаются языка Perl,
например.

Как присвоить переменной-массиву не известное
заранее имя строковой переменной?

Ну вот пусть у меня имеются массивы: @bears,
@rabbits, @piglets, @tigres, что-то в них
содержится -- не так и важно.

Я хочу, скажем, опечалить их содержимое некоей вполне
определенной операцией. После этого у меня
должны возникнуть массивы @tristes_bears, ...,
@tristes_tigres. Я хочу образовывать имена
новых массивов от имен старых посредством
конкатенации строк. Можно ли это сделать,
и если да, то как это сделать?

UPDATE: Спасибо тебе, дорогой Коллективный Разум!
Медведи успешно опечалены, и за прочими
дело не станет! УРА!!!!!!!!!!!
LinkLeave a comment

Comments:
From:[info]tristes_tigres
Date:September 21st, 2011 - 09:45 pm
(Link)
В силу конфликта интересов, ответить не могу
[User Picture]
From:[info]aculeata
Date:September 21st, 2011 - 09:46 pm
(Link)
С кем, простите, у Вас конфликт интересов?
From:[info]tristes_tigres
Date:September 21st, 2011 - 09:49 pm
(Link)
с названием массива
[User Picture]
From:[info]aculeata
Date:September 21st, 2011 - 09:52 pm
(Link)
Let it be @heureux_tigres then, eh?
We'll MAKE EVERYONE HAPPY HERE, no?
From:(Anonymous)
Date:September 21st, 2011 - 10:31 pm
(Link)
>perl -e "$X='bears'; @{'thristes_'.$X}=('1','2','3'); print $thristes_bears[1];"
2
[User Picture]
From:[info]aculeata
Date:September 21st, 2011 - 10:32 pm
(Link)
Ой. Спасибо, сейчас же попробуем!
From:[info]666
Date:September 21st, 2011 - 10:38 pm
(Link)
@abc = (1,2,3);
$newname = 'cde';
eval('@'.$newname.' = @abc;');
[User Picture]
From:[info]aculeata
Date:September 21st, 2011 - 10:42 pm
(Link)
круто
From:[info]http://openid.anonymity.com/latynina
Date:September 21st, 2011 - 11:42 pm
(Link)
perl -e '@abc = ("Скорбный", "тигр");$newname = 'cde';@{"tristes_".$newname} = @abc; print join ",",@tristes_cde'
[User Picture]
From:[info]aculeata
Date:September 22nd, 2011 - 02:56 pm
(Link)
Ура!
From:[info]potan
Date:September 22nd, 2011 - 08:06 am
(Link)
Выше ответити как.
Но мне было бы страшно создавать переменные во время исполнения...
[User Picture]
From:[info]aculeata
Date:September 22nd, 2011 - 02:57 pm
(Link)
Человек не должен бояться!
From:[info]potan
Date:September 22nd, 2011 - 03:02 pm
(Link)
Вот только как этого добиться...
[User Picture]
From:[info]syarzhuk
Date:September 25th, 2011 - 05:34 pm
(Link)
Сэр, ваш бык опечалил белую корову - он снова трахнул чёрную!
[User Picture]
From:[info]aculeata
Date:September 26th, 2011 - 02:40 pm
(Link)
У нас, русских, есть для этого Премьер-министр,
будущий Президент.