![]() |
Подскажите - где тут грабли????
Я в перле почти никак, но надо сделать.... :(
Имеется файло usd.pl (скрипт не мой - скачал), которое должно получать дату и текущий курс доллара с сайта РБК и писать в файл... мне надо шоб оно мне в хтмл в нужное место выводило только курс.... пытался сделать просто вывод в браузер, еще без позиционирования.... дату выдает, а вместо курса - 0.0 Исходник: #!/usr/bin/perl $URL = "http://www.rbc.ru/"; # URL with rate $keyword = "USD г+ ¦L"; # 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 $regexp = "[\\d\\/,]+"; # regular expression to extract date and rate; duplicate any "\" use LWP::Simple; $content = get($URL); @arr = split(/\n/, $content); $flag = 0; for (@arr) { if ($flag == 0) { if (/$keyword/) {$flag = 1}; } elsif ($flag == 1) { />($regexp)</; # print "Date: $1\n"; $date = $1; $flag = 2; } elsif ($flag == 2) { />($regexp)</; # 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; Чего я сделал (да почти ничего): #!/usr/bin/perl $URL = "http://www.rbc.ru/"; # URL with rate $keyword = "USD г+ ¦L"; # stamp of start line #$fhistory = "/var/log/rate_history.txt"; # file of rate history #$frate = "/var/log/rate.txt"; # file of rate #$add_percent = 2.; # add that percents to rate before saving $format = "%5.1f"; # format of rate to save $regexp = "[\\d\\/,]+"; # regular expression to extract date and rate; duplicate any "\" use LWP::Simple; $content = get($URL); @arr = split(/\n/, $content); $flag = 0; for (@arr) { if ($flag == 0) { if (/$keyword/) {$flag = 1}; } elsif ($flag == 1) { />($regexp)</; print "Date: $1\n"; $date = $1; $flag = 2; } elsif ($flag == 2) { />($regexp)</; 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; print "Content-type: text/html\n"; print "\n"; print "<html><body>"; print "<b>"; print "$rate\n"; print "</b>"; print "</body></html>"; Заранее благодарен. |
Привет!
А до этого все работало??? |
че-то я не пойму - зачем строку
#$add_percent = 2. коментировать? когда потом - $rate *= (1+$add_percent/100); |
Re: Подскажите - где тут грабли?
2Fiksa: не знаю.... по крайней мере файл не создавало, в него не писало и вообще не работало...
2der: думаешь и это закоментировать? я вообще-то пробовал раскомментировать эту строку, но он как 0.0 выдавал, так и выдает :( В общем не знаю.... правда появился другой вариант, но он корявый... в конце вместо print "$rate\n"; я прописал print "@arr[381]". но оно тогда всю строку выводит, а мне всякие тэги хтмлные, которые курс бакса обрамляют, нафик не нужны..... как их из строки удалить и вывести только курс???? :( вот такая вот задачка :( |
Трабл был в регулярных выражениях. Они были настроены немного на другой формат.
Вот исправленная версия: Код:
#!/usr/bin/perl |
Re: Подскажите - где тут грабли?
2All: большое спасибо всем, кто откликнулся.
2DeepDiver: А Вам - отдельное спасибо. действительно все работает, только мне нужно было в хтмл все это выводить. Но это уж я сам без проблемов сделал :)) Еще раз большое спасибо. |
| Часовой пояс GMT +4, время: 11:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.