Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Igor Nikolaev                        2:5030/266     07 Jul 2001  04:20:48
 To : "Evgenia Firsova"
 Subject : Re: проблема с хэшем?
 -------------------------------------------------------------------------------- 
 
 Evgenia Firsova <saigo@peterlink.ru> wrote:
 
 > # функция открывает файл и читает данные в хэш
 > # входные параметры: имя файла
 > sub data_hash()
 > {
 >    open(KAT_FILE,"< $_[0]");
 >    while (<KAT_FILE>)
 >    {
 >       chomp;
 >       ($num,$txt,$price)=split(/:/,$_);
 >       $data{$num}=$txt.":".$price;
 >    }
 >    close(KAT_FILE);
 >    return %data;
 > }
 
 Ой, ужастики:
 sub data_hash {
   open I, $_[0] or die "Can't open $_[0]";
   chomp ( my %data = map { split /:/, $_, 2 } <I> );
   close I and return %data;
 }
 
 > # функция добавления записи в файл
 > # входные параметры: имя файла, строка описания, строка цены
 > sub data_add()
 > {
 >    data_hash($_[0]);
 >    $data{1+scalar keys %data}=$_[1].":".$_[2];
 >    $i=1;
 >    foreach $num (sort {$data{$a} cmp $data{$b}} keys %data)
 >      { $new_data{$i}=$data{$num}; $i++; }
 >    %data=%new_data;
 >    open(KAT_FILE,"> $_[0]");
 >    foreach $num (keys %data)
 >      { print KAT_FILE $num.":".$data{$num}."\n"; }
 
 Это вообще тихий ужас на крыльях ночи...
 Что там за извращения с сортировкой хеша?
 Может просто `sleep дофига` написать?
 
 > Too many arguments for main::data_hash at step1to2.pl line 69, near "])"
 > line 69 - это строка data_hash($_[0]); в процедуре data_add()
 
 Hе обращай внимания. Это всё мелочи.
 
 > подскажите, в чём ошибка?
 
 Ошибка в том, что такие вещи пишут либо используя
 tie, .db либо на sql. Похоже что всю подобную
 дребедень нужно просто переписывать заново.
 
 Для начала с use strict; и -w
 
 > Евгения
 
 -- 
 Игорь Hиколаев
 --- ifmail v.2.12.os.sensi
  * Origin: man perlfunc -> tie (2:5030/266@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: проблема с хэшем?   Igor Nikolaev   07 Jul 2001 04:20:48 
Архивное /ru.perl/13416e0aa94e2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional