установка модулей XML::LibXML и LWP::UserAgent в Windows 7

Posted in Новости on 17 июня, 2013 by admin

1. устанавливаем Active Perl
2. Пуске — выполнить — ppm
3. Находим нужные модули, помечаем для установки и устанавливаем через Ctrl + Enter

Tags: , ,

Перенаправление STDOUT системных команд в консоль при выполнении perl

Posted in Новости on 19 октября, 2012 by admin

Иногда требуется вывести результат команды в консоль, причем результат по сути бесконечный ( например ping ). Стандартный скрипт результата не дал :

#!/usr/bin/perl

use strict;
use warnings;

my $tt = `ping ya.ru`;
print $tt;

потому как по сути все время работы пинга в переменную будет писаться вывод. Для наших целей потребуется модуль IPC::Open2 ( Inter Program Communication ).
Страница модуля — http://search.cpan.org/~jhi/perl-5.8.0/lib/IPC/Open2.pm

Пример работающего скрипта :


#!/usr/bin/perl

use strict;
use warnings;

use IPC::Open2;

my $HANDLE;

my $pid = open(HANDLE, "|ping ya.ru|");

print HANDLE "";
Tags: , ,

использование reCAPTCHA в perl CGI

Posted in Новости on 13 октября, 2012 by admin

Модуль cpan — http://search.cpan.org/dist/Captcha-reCAPTCHA/lib/Captcha/reCAPTCHA.pm

Регистрируем домен в https://www.google.com/recaptcha и получаем PRIVATE_KEY и PUBLIC_KEY . Далее устанавливаем модуль Captcha::reCAPTCHA . По образцу со страницы модуля пишем простой скрипт :


#!/usr/bin/perl

use CGI;
use Captcha::reCAPTCHA;
$cgi = CGI->new();
my $c = Captcha::reCAPTCHA->new;
print "Content-type:text/html\r\n\r\n";
print <

HTML
my $result = $c->check_answer(
"PRVATE_KEY", $ENV{'REMOTE_ADDR'},
$cgi->param(recaptcha_challenge_field),
$cgi->param(recaptcha_response_field)
);
if ( $result->{is_valid} ) {
print "Yes!";
}
else {
$error = $result->{error};
}
print $c->get_html( 'PUBLIC_KEY', $error );
#

print <

HTML


Как видите, мы описали CGI, и поместили в разрезе функцию ввода и проверки капчи :

my $result = $c->check_answer(
"PRVATE_KEY", $ENV{'REMOTE_ADDR'},
$cgi->param(recaptcha_challenge_field),
$cgi->param(recaptcha_response_field)

и функцию вывода ответа :

print $c->get_html( 'PUBLIC_KEY', $error );

Сама переменная правильности ответа ( Да/Нет ) находится тут — $result->{is_valid}

Tags: , , ,