The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"а как в перле нумерованные переменные обозначить?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"а как в перле нумерованные переменные обозначить?"  +/
Сообщение от greenwar (ok) on 15-Фев-10, 18:40 
вот как это:
for($i=0;$i<100;$i++){
    $var=$array[int rand(@array)]}

переделать так, чтобы $var стал $var1 $var2 $var3 и т.д.? тобишь как-то $var$i замутить..
в шелле оно как-то через eval по-моему делалось, а в перле как?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Пытливый Ум on 15-Фев-10, 19:23 
$i = 10;
$name = 'var' . $i;
$$name = 'test';
print $name . "\n" . $var10;
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Pahanivo email(ok) on 16-Фев-10, 08:16 
>$i = 10;
>$name = 'var' . $i;
>$$name = 'test';
>print $name . "\n" . $var10;

о великий медиум! ты осилил понять?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от greenwar (ok) on 16-Фев-10, 10:53 
>$i = 10;
>$name = 'var' . $i;
>$$name = 'test';
>print $name . "\n" . $var10;

не смог догнать, а как это применить к моей задаче то?
напомню: требуется поиметь $var1-10 в цикле (т.е. на выходе из цикла 10 переменных), каждый со своим значением

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Пытливый Ум on 16-Фев-10, 22:26 
>не смог догнать, а как это применить к моей задаче то?

Плохо. Рыбий жир надо пить.
Создаёшь имя переменной в цикле и присваиваешь ей значение. На выходе 10 переменных со своими значениями.

Хотя задача бредовая ибо массивы есть

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Пытливый Ум on 16-Фев-10, 22:28 
$$name = 'test';

это присвоить значение переменной, имя которой хранится в переменной $name

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Andrey Mitrofanov on 16-Фев-10, 09:32 
>в шелле оно как-то через eval по-моему делалось, а в перле как?

Ну... http:/openforum/vsluhforumID9/8494.html#5 в общем... Можно и без eval. Ж)

$ value1=string
$ ref=value$((9-8))
$ echo ${!ref}
string
$ _

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от jd (??) on 16-Фев-10, 13:11 
>$ echo ${!ref}

Во, крутяк! А что это? Даже в мане по bash такого не нашёл. Но ведь работает! :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от greenwar (ok) on 16-Фев-10, 15:41 
>>$ echo ${!ref}
>
>Во, крутяк! А что это? Даже в мане по bash такого не
>нашёл. Но ведь работает! :)

man bash. раздел "Parameter Expansion"

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от jd (??) on 16-Фев-10, 19:49 
Да этот раздел я смотрел. Странно, но у меня там ничего нет про это.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "сказки 1000 и одного bash-а :)))"  +/
Сообщение от Andrey Mitrofanov on 16-Фев-10, 22:43 
>>$ 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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "сказки 1000 и одного bash-а :)))"  +/
Сообщение от jd (??) on 17-Фев-10, 00:36 
>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-)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Pahanivo email(ok) on 16-Фев-10, 13:11 
>>в шелле оно как-то через eval по-моему делалось, а в перле как?
>
>Ну... http:/openforum/vsluhforumID9/8494.html#5 в общем... Можно и без eval. Ж)
>
>$ value1=string
>$ ref=value$((9-8))
>$ echo ${!ref}
>string
>$ _

о мудрые старшие товарисчи, объясните мне смысел этих извратов ))

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от greenwar (ok) on 16-Фев-10, 15:43 
>[оверквотинг удален]
>>
>>Ну... 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, если чё

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Pahanivo email(ok) on 16-Фев-10, 17:10 
ух ты - стерео-картинке!


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от Andrey Mitrofanov on 16-Фев-10, 22:47 
Это Знание откроется тебе только тогда, когда ты будешь к этому _готов_, ма-ла-дой па-да-ван. :-P
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от anonymous (??) on 19-Фев-10, 00:33 
>вот как это:
>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";

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "а как в перле нумерованные переменные обозначить?"  +/
Сообщение от greenwar (ok) on 19-Фев-10, 00:36 
>#!/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 новые темы узнал из трёх строк ^^

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру