The OpenNET Project / Index page

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



"помогите реализовать на perl следующие:"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "помогите реализовать на perl следующие:" +/
Сообщение от angra (ok), 27-Сен-09, 01:46 
>my @file_list = `ls $file_tmp`;

Никогда так не делайте, особенно в циклах. Вызывать внешние программы можно только если реализация действия на perl слишком громоздка или проигрывает в скорости. Прочитайте про glob и opendir/readdir/seekdir/итд

>for(my $i=0; $i<scalar(@file_list); $i++)

Это perl а не С, забудьте про циклы такого вида, есть foreach(на самом деле он синоним к for, но для восприятия их различают), есть map. Создавать переменные с индексами в именах еще большая дурость, даже не знаю откуда она, есть же массивы. Примеры:

my @handler_list;
foreach my $name (@file_list) {
  my $file;
  open($file,"<", "$file_tmp/$name") or die "Can't open $file_tmp/$file_name: $!";
  push @handler_list, $file
}
...
foreach my $h (@handler_list) {
@table=<$h>
}

Можно вместо создания переменной и push использовать напрямую элемент массива
foreach my $name (@file_list) {
open($handler_list[scalar(@handler_list)],"<", "$file_tmp/$name") or die "Can't open $file_tmp/$name: $!";
}

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
помогите реализовать на perl следующие:, gloomy_pilgrim, 25-Сен-09, 19:07  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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