URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8343
[ Назад ]

Исходное сообщение
"повторный вызов циклов"

Отправлено creapt , 09-Июл-09 01:29 
Всем привет.
Никак не могу сообразить, как вызвать n раз один и тот же цикл, но с переопределение в нем переменной, написав его только 1 раз.
имеется
if($b=~/^\d{7,9}$/){
$b=$b/1048576;
$b=~s/\.\d+//;
$b="$b MB";
};
Данный цикл нужно вызывать n раз и значение $b переопределять при каждом новом вызове.


Содержание

Сообщения в этом обсуждении
"повторный вызов циклов"
Отправлено adews , 09-Июл-09 09:14 
>if($b=~/^\d{7,9}$/){
>  $b=$b/1048576;
>  $b=~s/\.\d+//;
>  $b="$b MB";
>};
>Данный цикл

Простите, а где здесь цикл? Цикл будет, когда Вы напишете for, а это всего лишь ветвление


"повторный вызов циклов"
Отправлено creapt , 09-Июл-09 13:42 
>>if($b=~/^\d{7,9}$/){
>>  $b=$b/1048576;
>>  $b=~s/\.\d+//;
>>  $b="$b MB";
>>};
>>Данный цикл
>
>Простите, а где здесь цикл? Цикл будет, когда Вы напишете for, а
>это всего лишь ветвление

while (@r=$result1->fetchrow_array){
@b=@r;
.......
отсюда
if(@b[0]=~/^\d{7,9}$/){
@b=@b[0]/1048576;
@b[0]=~s/\.\d+//;
@b="@b MB";
};
досюда
этот блок мне нужно вставить в разные циклы.
.......
};


"повторный вызов циклов"
Отправлено angra , 09-Июл-09 14:53 
Для начала неплохо было бы следовать правилам хорошего тона и использовать use strict, сдается мне, оно вам много нового расскажет о ваших программах. Непонятно что именно вызывает проблему. Если сделать my $b за циклом, то между итерациями $b будет сохранять значение, если внутри цикла, то на каждой итерации будет получать undef.