Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl не могу понять своих ошибок 
:(
    Опции темы
TikiTak
Дата 8.4.2012, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 8.4.2012

Репутация: нет
Всего: нет



Код

#!/use/bin/perl -w
use strict;
use LWP::Simple;
my $page;
my $url;

open(MYFILE, '<', "site_proxy.txt");
$url=<MYFILE>;
$page=get("$url");
print $page;


почему не работает 
PM MAIL   Вверх
alezzz
Дата 8.4.2012, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



что в site_proxy.txt?
PM MAIL   Вверх
TikiTak
Дата 8.4.2012, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 8.4.2012

Репутация: нет
Всего: нет



Цитата(alezzz @ 8.4.2012,  10:54)
что в site_proxy.txt?

урлы сайтов в каждой строке новый урл
Код

http://forum.vingrad.ru






PM MAIL   Вверх
alezzz
Дата 8.4.2012, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



если несколько урлов то нужен цикл, так как сейчас составлена программа должно работать для первого урла
PM MAIL   Вверх
TikiTak
Дата 8.4.2012, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 8.4.2012

Репутация: нет
Всего: нет



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

вот такая вот ошибка :(  почему не понятно

Use of uninitialized value $page in print at C:\perlscript\script.pl line 9, <MYFILE> line 1.
PM MAIL   Вверх
alezzz
Дата 8.4.2012, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



упростите программу:
Код

#!/use/bin/perl -w
use strict;
use LWP::Simple;

print get('http://www.perl.org');

если не работает, проверяйте подключение к интернет, настройки файрвола.
PM MAIL   Вверх
TikiTak
Дата 8.4.2012, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 8.4.2012

Репутация: нет
Всего: нет



в том то и прикол что при упрошении программы все работает последний код прекрасно работает
PM MAIL   Вверх
TikiTak
Дата 8.4.2012, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 8.4.2012

Репутация: нет
Всего: нет



вопрос решен 
сайт который я пытался открыть часто падал но когда я открывал в браузере он открывался зараза 
PM MAIL   Вверх
Pfailed
Дата 8.4.2012, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



После $url=<MYFILE>; желательно делать $url =~ s/\s+$//;, чтобы убрать перенос строки если он есть.


--------------------
PM MAIL   Вверх
krypt3r
Дата 9.4.2012, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



Цитата
После $url=<MYFILE>; желательно делать $url =~ s/\s+$//;, чтобы убрать перенос строки если он есть. 

chomp()
PM MAIL   Вверх
Pfailed
Дата 9.4.2012, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



krypt3r, chomp() удаляет с конца строки содержимое $/, т.е. по умолчанию "\n". А в Windows, например, строки принято разделять комбинацией "\r\n".
perldoc -f chomp


--------------------
PM MAIL   Вверх
krypt3r
Дата 11.4.2012, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



Pfailed, perldoc perlport, ключевое слово "Newlines"
PM MAIL   Вверх
Pfailed
Дата 11.4.2012, 11:03 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



krypt3r, chomp для кода ТС не сработает, как минимум, в следующем случае:
скрипт запускается в Linux/BSD, файл имеет окончания строк "\r\n"

Дабы не зависить от магических преобразований PerlIO в зависимости от платформы, я предпочитаю в таких случаях использовать оператор замены.



--------------------
PM MAIL   Вверх
krypt3r
Дата 12.4.2012, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



Pfailed, ваше решение — это костыль. Правильное решение указано в мане — это chomp(). Указание :crlf при открытии файла или в прагме поможет в вашем последнем примере (кстати, сработает и для файлов с концами строки в стиле Unix).

PS. В общем, закругляемся, это оффтопик, тем более ТС решил проблему. Каждый юзает perl по-своему ;)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1273 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.