Показать сообщение отдельно
Старый 17.02.2002, 23:09
DeepDiver вне форума Посмотреть профиль Отправить личное сообщение для DeepDiver Найти все сообщения от DeepDiver
  № 5  
DeepDiver

Регистрация: Oct 2000
Адрес: Подмосковье
Сообщений: 637
Отправить сообщение для DeepDiver с помощью ICQ
Трабл был в регулярных выражениях. Они были настроены немного на другой формат.
Вот исправленная версия:
Код:
#!/usr/bin/perl
$URL = "http://www.rbc.ru/"; # URL with rate 
$keyword = "Нал. USD"; # stamp of start line 
$fhistory = "rate_history.txt"; # file of rate history 
$frate = "rate.txt"; # file of rate 
$add_percent = 2.; # add that percents to rate before saving 
$format = "%5.1f"; # format of rate to save 
$timeregexp = '\d+\:\d+'; # regular expression to extract time;
$rateregexp = '\d+\,\d+'; # regular expression to extract rate;

use LWP::Simple; 

$content = get($URL); 

@arr = split(/\n/, $content); 

$flag = 0; 
for (@arr) { 
 if ($flag == 0) { 
   if (/$keyword/)  $flag = 1;
 } elsif ($flag == 1) { 
   /($timeregexp)/; 
   print "Time: $1\n"; 
   $date = $1; 
   $flag = 2; 
 } elsif ($flag == 2) { 
   /($rateregexp)/; 
   print "Rate: $1\n"; 
   $rate = $1; 
   $flag = 3;
 } 
} 

$rate =~ s/,/./; 

$rate *= (1+$add_percent/100); 

$rate = sprintf($format,$rate); 

open (OUT, ">>$fhistory"); 
print OUT "$date\t$rate\n"; 
close OUT; 

open (OUT, ">$frate"); 
print OUT "$rate"; 
close OUT;
__________________
Не ошибается то, что не работает. (с) Windows