Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > возвращение массива из функции


Автор: SATYR 4.7.2006, 10:59
Всем доброго времени суток.

Есть функция которая читает файл и возвращает прочитаное в виде массива
Код

#!/usr/bin/perl-w
use strict;
use CGI qw(:standard);

sub file_read_arr
{
 my @content;
 my $file_name=shift(@_);
 my$path=$ENV{"DOCUMENT_ROOT"}.'/'.$file_name;
 local *FILE;
 open(FILE,"<$path") or $!;
 while(<FILE>){
   push(@content,$_);
 }
 close(FILE);
 return @content;
}


пробовал функцию обьявить в отдельном файле и в нем же выполнить ее вызов и печать результата
Код

my @arr= file_read_arr('text/form_pay.txt');
print @arr;

функция результат возвращается как и требуется в виде списка

но там где ее применение запланировано 
Код

    my @pay=file_read_arr('text/form_pay.txt');
                my @size=('150x200','200x300','300x400');
...........................
$content.=scrolling_list($name_field,\@pay);
$content1.=scrolling_list($name_field1,\@size);
.....................


все строки файла возвращаются почемуто в виде одной строки т.е. как результат scrolling_list содержит один, но  длинный  элемент. smile. Может в этом виноват   scrolling_list  хотя ему не все ли равно если ему нужно в качестве параметра ссылку на массив , то он ее получает.  В общем теряюсь где ошибка. Народ прошу помоч.
Заранее спасибо.

 

Автор: aksined 4.7.2006, 14:41
функция, которая читает выглядит нормально, почему бы не привести, что делает scrolling_list 

Автор: SATYR 7.7.2006, 11:04
scrolling_list  это функция из модуля CGI.pm результат ее работы html элемент <select>....<\select>  первый параметр имя элемента (), 2-й  содержимое самого селекта, содержимое передается ввиде ссылки на массив на какой(анонимный неанонимный) ,судя по тому что работает  .@size нормально, без разници. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)