02 мая 2020, суббота, в 20:17 NOVT, Nil Alexandrov написал(а):
NA> В последнее время питон, кроме написания скриптов так таковых, стал
NA> использоваться как R&D тул всякими ресёрчерами (умные дядьки с
NA> магистратурами),
NA> которые на нём могут что-то попрототипировать, покрутить туда-сюда и всё
NA> это с
NA> минимальным количеством строк кода. Как это стало возможным? Всё благодаря
NA> обёрткам вокруг C++ кода/библиотек. Получается, что ты пишешь одну/две
NA> строчки
NA> взять данные по такому-то URL (пример urllib, код работает быстро со
NA> скоростью
NA> C), второй строчкой парсим XML/JSON/.. тоже C библиотечным вызовом, а
NA> дальше
NA> скармливаем нашей статистической модели или нейронке, библиотек для
NA> (глубокого)
NA> машинного обучения (мы в шутку называет deep shit learning), и, пальцем в
NA> небо
NA> (но с умным выражением лица), прогнозируем когда закончится карантин,
NA> сколько
NA> будет стоить акции, когда доллару хана, и прочее прочее. Естесссно, что на
NA> перле
NA> этого всего не завезли, и это хорошо.
А можно тебя попросить больше никогда не рассуждать
публично о том, о чём ты никакого понятия не имеешь?
Я тут себе чуть всё лицо фейспалмами не разбил
с одного этого параграфа.
Чуток из боевого perl-кода, который вызывается из embedded perl,
встроенного внутрь радиус-сервера и обрабатывающего голосовые
вызовы в реальном времени параллельно с их протеканием:
use HTTP::Tiny; # часть стандартного дистрибутива perl
...
our @urls = ($url1, $url2);
...
foreach my $baseurl (@urls) {
my $http = HTTP::Tiny->new ('timeout' => TIMEOUT);
my $url = $baseurl . "...";
my $response = $http->get($url);
...
}
Конечно, в Perl не завезли работу с URL!
И в metacpan тоже ничего нету на эту тему! Ой нет, есть, навскидку:
$ pkg search -x 'p5-' | egrep -i 'www|url|uri' | wc -l
172
Одних только дополнительных модулей, работающих с WWW/URL/URI
больше полутора сотен, среди них p5-Net-Curl, p5-WWW-Curl,
p5-libwww, p5-WWW-Telegram-BotAPI, p5-URI-ws (websockets) и т.д.
Что касается парсинга XML, то в Perl конечно этого нету.
Ой, тоже есть. Кусок боевого кода, который выгружает
и парсит пресловутый черный список РКH, который распространяется
в виде XML и сейчас весит 120160KB (то есть, 117MB),
и не дай бог подобный парсер заглючит и не выполнит свою работу
точно и без багов, 50 тысяч рублей штрафа.
use XML::Simple;
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
# Чтобы получить доступ к XML, нужно использовать SOAP
sub soap_fault($$);
use SOAP::Lite on_fault => sub { soap_fault($_[0], $_[1]); };
my $client = SOAP::Lite->new;
$SOAP::Constants::PREFIX_ENV = 'SOAP-ENV';
...
# Парсинг XML-файла схемы WSDL
$service = $client->service($endpoint);
...
# SOAP-запрос zip с XML внутри:
@result = $service->sendRequest($request, $signature, $dumpver);
...
for(my $t = $try; $t > 0; $t--) {
...
eval { $r = $service->call('getResult',
SOAP::Data->name('code')->value($code))->body->{'getResultResponse'};
};
...
}
# Парсинг XML-файла непосредственно из потока unzip:
eval { local $SIG{'__DIE__'}; $h = XMLin('-'); };
...
my $content = $h->{'content'};
# обработка содержимого XML
while (($key, $value) = each %$content) {
...
}
Hу уж машинного обучения в Perl не точно завезли?
Ой, и это активно обновляется! Последняя версия меньше
трех месяцев назад, автор Сергей Колычев из WhiteHat Security:
https://metacpan.org/release/AI-MXNet
Eugene
--
Поэты - страшные люди. У них все святое.