Есть процедура которая считывает из лог файла значения и запихивает их в массив, поскольку файлов слишком много, была создана процедура считывания. Из тела программы в цикле передаються этой процедуре названия файлов. Так вот хотелось бы возвращать из этой процедуры этот самый массив с полученными результатами для последующей обработки каждого считанного файла. Структура файлов одинакова.Как можно такое реализовать?
>Есть процедура которая считывает из лог файла значения и запихивает их в
>массив, поскольку файлов слишком много, была создана процедура считывания. Из тела
>программы в цикле передаються этой процедуре названия файлов. Так вот хотелось
>бы возвращать из этой процедуры этот самый массив с полученными результатами
>для последующей обработки каждого считанного файла. Структура файлов одинакова.
>
>Как можно такое реализовать?ссылка на массив
return \@array;
Возвращай массив, как любое другое значение - Perl это умеет.
>Возвращай массив, как любое другое значение - Perl это умеет.Пробовал разное
@arr = read_file ( $puth, $file );
принт join ( @arr );
print @arr;выводят
1 ничего
2 длинну массива
sub read_file {
my @arr2;
..........
return /@arr2;
или return @arr2;}
>
>принт join ( @arr );
>
так таки и "принт"?!!perldoc -f join
все разобрался
Оказываеться видимость переменных также и массивов не ограничиваеться видиммостью в процедуре а еще и вот такЕсли переменную или массив объявить внутри блока IF {} то вне этого блока переменная массив уже не видна :)
Мой косяк,
Всем спасибо
>Если переменную или массив объявить внутри блока IF {} то вне этого
>блока переменная массив уже не видна :)Более того внутри ЛЮБОГО блока (а не только IF) - это матчасть!