вот как это:
for($i=0;$i<100;$i++){
$var=$array[int rand(@array)]}переделать так, чтобы $var стал $var1 $var2 $var3 и т.д.? тобишь как-то $var$i замутить..
в шелле оно как-то через eval по-моему делалось, а в перле как?
$i = 10;
$name = 'var' . $i;
$$name = 'test';
print $name . "\n" . $var10;
>$i = 10;
>$name = 'var' . $i;
>$$name = 'test';
>print $name . "\n" . $var10;о великий медиум! ты осилил понять?
>$i = 10;
>$name = 'var' . $i;
>$$name = 'test';
>print $name . "\n" . $var10;не смог догнать, а как это применить к моей задаче то?
напомню: требуется поиметь $var1-10 в цикле (т.е. на выходе из цикла 10 переменных), каждый со своим значением
>не смог догнать, а как это применить к моей задаче то?Плохо. Рыбий жир надо пить.
Создаёшь имя переменной в цикле и присваиваешь ей значение. На выходе 10 переменных со своими значениями.Хотя задача бредовая ибо массивы есть
$$name = 'test';это присвоить значение переменной, имя которой хранится в переменной $name
>в шелле оно как-то через eval по-моему делалось, а в перле как?Ну... http:/openforum/vsluhforumID9/8494.html#5 в общем... Можно и без eval. Ж)
$ value1=string
$ ref=value$((9-8))
$ echo ${!ref}
string
$ _
>$ echo ${!ref}Во, крутяк! А что это? Даже в мане по bash такого не нашёл. Но ведь работает! :)
>>$ echo ${!ref}
>
>Во, крутяк! А что это? Даже в мане по bash такого не
>нашёл. Но ведь работает! :)man bash. раздел "Parameter Expansion"
Да этот раздел я смотрел. Странно, но у меня там ничего нет про это.
>>$ echo ${!ref}
>
>Во, крутяк! А что это? Даже в мане по bash такого не нашёл.${parameter}
[...]
If the first character of parameter is an exclamation point, a level of vari‐
able indirection is introduced. Bash uses the value of the variable formed
from the rest of parameter as the name of the variable; this variable is then
expanded and that value is [...]http:/openforum/vsluhforumID10/4460.html#2
http:/openforum/vsluhforumID1/84460.html#1У самого о-очень большие трудности с "дочитать до середины"... :( Код и опыт (со "справочным" чтением m b -- существенно легче. Ну, или читать чужой sh-код, со словарём - в особенно погравившижся :) местах.
...А почему Гугль не ищет по строкам вроде "{!"?? %)
---То, чего Вы никогда не прочитаете в man bash, но оно _там_есть_! :D
>If the first character of parameter is an exclamation point, a level
> of vari‐
>able indirection is introduced. Bash uses the
>value of the variable formed
>from the rest of parameter as the name of the variable; this
>variable is then
>expanded and that value is [...]Точно, вот ведь слепой! По ману ${! поискал, раздел Parameter Expansion наискосок пробежал, а вот это, словами про восклицательный знак, проглядел... :)
P.S. Одно время man bash на ночь как книжку интересную читал, просто подряд. Не помню уже, прочитал ли весь, но скилл повысил здорово, конечно. 8-)
>>в шелле оно как-то через eval по-моему делалось, а в перле как?
>
>Ну... http:/openforum/vsluhforumID9/8494.html#5 в общем... Можно и без eval. Ж)
>
>$ value1=string
>$ ref=value$((9-8))
>$ echo ${!ref}
>string
>$ _о мудрые старшие товарисчи, объясните мне смысел этих извратов ))
>[оверквотинг удален]
>>
>>Ну... http:/openforum/vsluhforumID9/8494.html#5 в общем... Можно и без eval. Ж)
>>
>>$ value1=string
>>$ ref=value$((9-8))
>>$ echo ${!ref}
>>string
>>$ _
>
>о мудрые старшие товарисчи, объясните мне смысел этих извратов ))смысел примерно такой же, как тут например:
#!/usr/bin/perl
$_='
$q ="\ 47"; wh
ile ($ ;=
$z += .5 ){
%c= $r=0;$/ ="";whi le(2
0+ $z>($;+=.05)){$c{int$ _+ 2
6+ 2*($ r+= .0 2) *
s in$ ;}{1 -$_
+1 0+ int $r*c o s
$ ;} =1for(0. .1) }$
t =r ever se;$ /. =`
c le ar `. " #!
/ usr /bi n/ pe
rl \n\ $_ =$q \n" ;
fo r$y (1..20){$c{$_} {
$ y }? $ /.=chop$t :
($/ . =" \4
0") for(0. .53) ;
$/. ="\n"}pri nt"$/$ q;
s; ". chr(9 2)."s;;g;eval\n "}';s;\s;;g;eval
P.S. это не rm -rf, если чё
ух ты - стерео-картинке!
Это Знание откроется тебе только тогда, когда ты будешь к этому _готов_, ма-ла-дой па-да-ван. :-P
>вот как это:
>for($i=0;$i<100;$i++){
> $var=$array[int rand(@array)]}
>
>переделать так, чтобы $var стал $var1 $var2 $var3 и т.д.? тобишь как-то
>$var$i замутить..
>в шелле оно как-то через eval по-моему делалось, а в перле как?
>#!/usr/bin/perl
@array = qw (a b c d e f g h i j k);
for($i=0;$i<10;$i++){
${var.$i}=$array[int rand(@array)];
}print "$var1 $var2 $var3\n";
>#!/usr/bin/perl
>
>@array = qw (a b c d e f g h i j k);
>
>for($i=0;$i<10;$i++){
> ${var.$i}=$array[int rand(@array)];
>}
>
>print "$var1 $var2 $var3\n";спасибо, человек, разбирающийся в перле
аж 2 новые темы узнал из трёх строк ^^