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

Исходное сообщение
"Возврат значения из процедуры в виде массива"

Отправлено Dianis , 09-Янв-06 18:18 
Есть процедура которая считывает из лог файла значения и запихивает их в массив, поскольку файлов слишком много, была создана процедура считывания. Из тела программы в цикле передаються этой процедуре названия файлов. Так вот хотелось бы возвращать из этой процедуры этот самый массив с полученными результатами для последующей обработки каждого считанного файла. Структура файлов одинакова.

Как можно такое реализовать?


Содержание

Сообщения в этом обсуждении
"Возврат значения из процедуры в виде массива"
Отправлено gr , 09-Янв-06 20:03 
>Есть процедура которая считывает из лог файла значения и запихивает их в
>массив, поскольку файлов слишком много, была создана процедура считывания. Из тела
>программы в цикле передаються этой процедуре названия файлов. Так вот хотелось
>бы возвращать из этой процедуры этот самый массив с полученными результатами
>для последующей обработки каждого считанного файла. Структура файлов одинакова.
>
>Как можно такое реализовать?

ссылка на массив

return \@array;


"Возврат значения из процедуры в виде массива"
Отправлено ACCA , 09-Янв-06 21:34 
Возвращай массив, как любое другое значение - Perl это умеет.

"Возврат значения из процедуры в виде массива"
Отправлено Dianis , 10-Янв-06 03:07 
>Возвращай массив, как любое другое значение - Perl это умеет.

Пробовал разное

@arr = read_file ( $puth, $file );

принт join ( @arr );
print @arr;

выводят
1 ничего
2 длинну массива


sub read_file {
     my @arr2;
     ..........
     return /@arr2;
или return @arr2;

}



"Возврат значения из процедуры в виде массива"
Отправлено madskull , 10-Янв-06 09:08 
>
>принт join ( @arr );
>
так таки и "принт"?!!

perldoc -f join


"Возврат значения из процедуры в виде массива"
Отправлено Dianis , 10-Янв-06 09:28 
все разобрался
Оказываеться видимость переменных также и массивов не ограничиваеться видиммостью в процедуре а еще и вот так

Если переменную или массив объявить внутри блока IF {} то вне этого блока переменная массив уже не видна :)

Мой косяк,
Всем спасибо


"Возврат значения из процедуры в виде массива"
Отправлено chip , 10-Янв-06 12:24 
>Если переменную или массив объявить внутри блока IF {} то вне этого
>блока переменная массив уже не видна :)

Более того внутри ЛЮБОГО блока (а не только IF) - это матчасть!