Вопросы с тегами [perl]

1

голосов
2

ответ
49

Просмотры

How to sort array values nested inside a hash with different keys?

У меня есть HTML-таблица, показывающая начало ППР и конечное время с различными типами отключений. В настоящее время я сортировка простоев в порядке типа ППРА, но я хотел бы иметь возможность сортировать их ранними до последних времен начала. Времена в каждом начало и конец уже будет в порядке, но я стараюсь, чтобы получить их в порядке, независимо от типа. Я знаю, что для сортировки по значению, обычно используется какой-то ценности сравнить, как это «рода {$ ч {$ а} $ {$ ч б}} ключи (% ч);» В настоящее время они сортируют нравится: 1 | телефон | 00:00:00 | 4:08:03 2 | телефон | 14:26:03 | 18:00:00 3 | телевидение | 12:34:19 | 12:34:25 Но это должно быть, как: 1 | телефон | 00:00:00 | 4:08:03 2 | телевидение | 12:34:19 | 12:34:25 3 | телефон | 14:26:03 | 18:00:00 Это мой код. мои% отключения; мои @outage_times = QW (начало конца); мои% outage_reasons = ( 'ТВ' => 'телевидение', 'Р' => 'телефон'); Foreach моего $ outage_reason (значения% outage_reasons) {Foreach моего $ (@outage_times отключения) {$ простоев {$ outage_reason} {$} отключений = []; }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} 'Телефон' ); Foreach моего $ outage_reason (значения% outage_reasons) {Foreach моего $ (@outage_times отключения) {$ простоев {$ outage_reason} {$} отключений = []; }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} 'Телефон' ); Foreach моего $ outage_reason (значения% outage_reasons) {Foreach моего $ (@outage_times отключения) {$ простоев {$ outage_reason} {$} отключений = []; }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} Foreach моего $ outage_reason (значения% outage_reasons) {Foreach моего $ (@outage_times отключения) {$ простоев {$ outage_reason} {$} отключений = []; }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} Foreach моего $ outage_reason (значения% outage_reasons) {Foreach моего $ (@outage_times отключения) {$ простоев {$ outage_reason} {$} отключений = []; }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} }} $ {Перебои телевидение} {Пуск} = ['00: 00: 00' , '14: 26: 03' ]; $ простои {телевизионные} {конец} = ['04: 08: 03' , '18: 00: 00' ]; $ отключений {телефон} {Пуск} = ['12: 32: 02' ]; $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} $ простои {телефон} {конец} = ['12: 38: 09' ]; мой $ outage_number = 1; Foreach моего $ отключения (ключи сортировки% ПРОСТОЙ) {для моего $ я (0 .. скаляр (@ {$ простоев {$} {отключение запуска}}) - 1) {моих $ outage_start_time = $ простоев {$} {отключение электричества начала } [$ я]; мои $ outage_end_time = $ простои {$ ППР} {конец} [$ я]; мой $ row_html = "$ outage_number $ отключение электричества"; $ Row_html = "$ outage_start_time". $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} ; $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }} ; $ Row_html = "$ outage_end_time". $ Outage_number + = 1; }}
knxwledge
1

голосов
1

ответ
51

Просмотры

Какие допускаются символы для обозначения perl5 модулей и подпрограмм?

Является ли это [A-Za-Z] и :: для имен модулей и [A-Za-z_-] для имен подпрограмм? PS Я пишу регулярное выражение для разбора какой-то вывод отладки.
Paul Serikov
1

голосов
0

ответ
17

Просмотры

SSL connection fails when often stalled by ~5s

I have a Perl streaming application that GET some file through HTTPS. The TCP flow is often paused for a few seconds because the player has buffered a lot. As a result, the connection very often breaks/ends early. I've taken various TCP logs and wireshark seems to be all confused and whines about Changing Cipher Spec and Ignored Unknown records. Obviously, the Change Cipher packets are wrong and do not match re-handshaking, there is something funny in the packets. I've written a small Perl example that throttles the download by using varous length pauses to show what happens. If the download is not paused by more than 1 sec, then this does not happen. When it is paused by 5s, it always happens at some point of the download. Server's openSSL is 1.0.2g and I've tried client 1.1.0j and various version from 0.9.8 to 1.0.2. I've tried also various Perl versions, no change (it's just an example that actually shows the problem, not supposed to be proper code) use IO::Socket::SSL; use Net::SSLeay; use IO::Select; $IO::Socket::SSL::DEBUG = 3; $Net::SSLeay::trace = 3; my $sock = IO::Socket::SSL->new( Timeout => 15, PeerAddr => '23.29.117.2', PeerPort => 443, SSL_startHandshake => 1, SSL_verify_mode => Net::SSLeay::VERIFY_NONE() # SSL_VERIFY_NONE isn't recognized on some platforms?!?, and 0x00 isn't always "right" ) or do { print("Couldn't create socket binding to $!"); return undef; }; my $sel = IO::Select->new($sock); my $start = time; use constant SLEEP => 5; syswrite ($sock, "GET /blocks/chan/0/4/1835801-1835807.flac HTTP/1.0\r\n\r\n"); sysread( $sock, my $data, 512 ); print $data; $sock->blocking(0); my $total; my $sum; while (1) { my $bytes = sysread( $sock, my $data, 8192 ); next if !defined $bytes; last if !$bytes; $total += $bytes; $sum += $bytes; print "$total ", int ($total/(time() - $start)/1000), " kB/s \r" if time() - $start; if ($sum > SLEEP*1024*1024/8) { sleep(SLEEP); $sum = 0; } } print("\nfinished $total\n"); $sock->close();
philippe_44
1

голосов
0

ответ
44

Просмотры

Как создать библиотечный модуль для расширения Dancer2 основного сценария

Я хотел бы создать относительно сложный веб-приложение. Для этого я нахожу очень удобный способ Dancer2 программирования с помощью прилагаемого DSL (Domain-Specific Language). Я также найти набор предоставляемых библиотек EXCELENT. Согласно документации, если вы хотите разделить ваш главный сценарий в нескольких библиотеках, вы будете использовать: использовать Dancer2 APPNAME => «MyApp»; В начале других библиотек. Это весьма полезно, но я хотел бы пойти на шаг дальше и определить библиотеку, используемую основной, чтобы добавить больше функциональных возможностей по модульному принципу. Я пробовал: пакет MyLibrary; использовать Dancer2 APPNAME => 'MyApp'; Затем, для того, чтобы экспортировать переменные и функции: требуют Exporter; наша (@ISA, @EXPORT, @EXPORT_OK); @ISA = QW (экспортер); @EXPORT = QW (func1 func2); @EXPORT_OK = QW (FUNC3); Но я обнаружил, что эти определения не экспортируются. Я все еще могу получить доступ к любой функции из основного скрипта в обычном длинном пути MyLibrary :: func1, но не с func1. Это происходит, как только я добавляю использовать Dancer2 APPNAME => «MyApp» ;. Но если я не делаю этого, я не могу получить доступ к любому приложению конкретных данных внутри библиотеки. Скажем, я хочу, чтобы проверить опцию конфигурации как Config -> {myoption}. Таким образом, я пытаюсь сделать что-то, что должно быть сделано по-другому? Это можно обойти? Я использую Dancer2 версию 0.205002. Я не могу получить доступ к любому приложения конкретных данных внутри библиотеки. Скажем, я хочу, чтобы проверить опцию конфигурации как Config -> {myoption}. Таким образом, я пытаюсь сделать что-то, что должно быть сделано по-другому? Это можно обойти? Я использую Dancer2 версию 0.205002. Я не могу получить доступ к любому приложения конкретных данных внутри библиотеки. Скажем, я хочу, чтобы проверить опцию конфигурации как Config -> {myoption}. Таким образом, я пытаюсь сделать что-то, что должно быть сделано по-другому? Это можно обойти? Я использую Dancer2 версию 0.205002.
Javier Elices
1

голосов
0

ответ
42

Просмотры

Могу ли я проверить установленное приложение с локальными данными с appium и Perl?

Я использую селен в течение некоторого времени, и теперь я хотел бы попробовать тестирование приложения, установленное в телефоне. До сих пор я сделал следующее: Я установил appium для макинтоша, и я нажал на беге. Я установил ADB. «абд устройства» обнаруживает мой телефон Установленные библиотеки перл для appium. Я установил приложение называется анализатором, чтобы получить АПК манифеста приложения и читать деятельность имена и имена пакетов. Я написал следующий код: использовать строгие; использовать предупреждение; использовать utf8; использовать Appium; использовать Selenium :: Remote :: Driver; использовать Selenium :: официанта; печать «начиная скрипт: \ п»; мой $ appium = Appium-> новые (шапки => { 'remote_server_address' => '0.0.0.0', 'порт' => 4723, 'platformName' => 'Android', 'platformVersion' => '6.0.1' , 'DEVICENAME' => 'Мое устройство', 'appPackage' => 'приложение пакета', 'appActivity' => 'Путь деятельности',}); $ Appium-> launch_app (); сна (10); мой $ элемент = $ appium-> find_element ( 'элемент', 'XPath'); $ Element-> кран (); $ Appium-> бросить курить; С путями и именами, которые работают для моего приложения и телефона ... Ну, когда я исполню ее, она открывает приложение, но кажется, что он открывает новую установку приложения, если приложение I имеет журнал в шаг, а затем у вас есть какие-то данные, хранящиеся там, исполнение appium не те данные, хранящиеся. Это нормальное поведение appium или это можно проверить через установку с сохраненными данными? В качестве примера того, что я хотел бы сделать: -I есть повестка дня с событиями в разные дни. Я' Ве сохранены эти события с течением времени вручную, но приложение не поддерживает функцию экспорта .. Я бы хотел, чтобы открыть приложение с appium и перебирать дни сохранения текста. -Если приложение, которое открывает appium новая установка я не могу получить данные.
nck
1

голосов
0

ответ
87

Просмотры

Python to Perl - Calculate term relatedness

I am trying to find a way to calculate the relatedness of two terms in Python, but I could only find ways to calculate the similarity. I found a Perl script that seems to do the job: use WordNet::Similarity::hso; use WordNet::QueryData; my $wn = WordNet::QueryData->new(); my $object = WordNet::Similarity::hso->new($wn); my $value = $object->getRelatedness("car#n#1", "bus#n#2"); ($error, $errorString) = $object->getError(); die "$errorString\n" if($error); print "car (sense 1) bus (sense 2) = $value\n"; I tried to write a Python wrapper around the Perl script: import subprocess set1 = 'church#n#1' set2 = 'temple#n#1' cmd = ['perl', './sample.pl', set1, set2] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) for line in proc.stdout: if 'Similarity' in line: similarity = int(line.split("=")[-1]) print similarity I have installed perl v.5.26.1 from binary, but when I run my Python script I get. Traceback (most recent call last): File "asdf/sshso.py", line 6, in proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) File "C:\Python27\lib\subprocess.py", line 390, in __init__ errread, errwrite) File "C:\Python27\lib\subprocess.py", line 640, in _execute_child startupinfo) WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden I know that my Python/Perl combination has errors and can't work. I can figure that out as the Perl code doesn't seem too complicated. I'm just looking for a way to parse my Python words to the Perl script and get back my calculated relatedness value. I have to do this for 44,000 items, so performance is important.
belzebubele
1

голосов
0

ответ
40

Просмотры

Модуль для управления ошибками HTTP

Я пишу модуль Результат Perl для управления ошибками HTTP. Я немного потерял, чтобы создать функцию управляющего всем этим. Result.pm пакет Результат; использовать строгий; использовать предупреждение; Использование Data :: Dumper; Журнал регистрации :: Log4perl; к югу нового {моего $ класса = сдвиг; мои% PARAMS = @_; мой $ самообеспечение = {код => $ PARAMS { 'код'}, значение => $ PARAMS { 'значение'}}; благослови $ самоощущение, $ класс; вернуть $ себя; } Суб generateError {мой $ = само смещение; мои% PARAMS = @_; если ($ самостоятельно -> { 'код'} == 200) {возвращение "Ваш запрос был хорошо выполнен!"; } ELSIF ($ самостоятельно -> { 'код'} == 400) {возвращение "Существует ошибка в запросе Пожалуйста, проверьте его!"; } ELSIF ($ самостоятельно -> { 'код'} == 404) {возвращение " }) {Вернуть $ self-> перенаправлять () гт = NOTFOUND? '; } Мой $ mailContent = from_json ($ Project -> { 'почта'}); мой $ templateContent = formatTemplate ($ Project -> { 'шаблон'}); мои $ Infos = [{ 'ID' => $ ID, 'TEMPLATE' => $ templateContent, 'MAILSUBJECT' => $ mailContent -> { 'предмет'}, 'MAILBODY' => $ mailContent -> { 'тело' }}]; если ($ mailContent -> { 'тип'} экв 'текст') {$ информация о -> [0] { 'MAILTEXT'} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1; } Мой $ mailContent = from_json ($ Project -> { 'почта'}); мой $ templateContent = formatTemplate ($ Project -> { 'шаблон'}); мои $ Infos = [{ 'ID' => $ ID, 'TEMPLATE' => $ templateContent, 'MAILSUBJECT' => $ mailContent -> { 'предмет'}, 'MAILBODY' => $ mailContent -> { 'тело' }}]; если ($ mailContent -> { 'тип'} экв 'текст') {$ информация о -> [0] { 'MAILTEXT'} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1; } Мой $ mailContent = from_json ($ Project -> { 'почта'}); мой $ templateContent = formatTemplate ($ Project -> { 'шаблон'}); мои $ Infos = [{ 'ID' => $ ID, 'TEMPLATE' => $ templateContent, 'MAILSUBJECT' => $ mailContent -> { 'предмет'}, 'MAILBODY' => $ mailContent -> { 'тело' }}]; если ($ mailContent -> { 'тип'} экв 'текст') {$ информация о -> [0] { 'MAILTEXT'} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1; мои $ Infos = [{ 'ID' => $ ID, 'TEMPLATE' => $ templateContent, 'MAILSUBJECT' => $ mailContent -> { 'предмет'}, 'MAILBODY' => $ mailContent -> { 'тело' }}]; если ($ mailContent -> { 'тип'} экв 'текст') {$ информация о -> [0] { 'MAILTEXT'} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1; мои $ Infos = [{ 'ID' => $ ID, 'TEMPLATE' => $ templateContent, 'MAILSUBJECT' => $ mailContent -> { 'предмет'}, 'MAILBODY' => $ mailContent -> { 'тело' }}]; если ($ mailContent -> { 'тип'} экв 'текст') {$ информация о -> [0] { 'MAILTEXT'} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1; Тип '} экв 'текст') {$ информация о -> [0] {' MAILTEXT '} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1; Тип '} экв 'текст') {$ информация о -> [0] {' MAILTEXT '} = 1; } Еще {$ информация о -> [0] { 'MAILHTML'} = 1; } Вернуть $ self-> processtmpl ( 'template.tmpl', $ информация о); } 1;
Maestro
1

голосов
0

ответ
38

Просмотры

Perl - Win32::Gui - Determin text content of text field which has focus

I have defined a main window $mw on which I placed several text fields in which an user can provide information. As soon as the user presses RETURN I want to determin the field which had the focus at that time and read out its text content to process it further. Here is the code how I defined the text fields: $mw->AddLabel ( -name => "lblSAP", -top => 5, -left => 10, -width => 80, -text => "identity no.", ); $mw->AddTextfield ( # text field 1 -name => "txtSAP", -pos => [ 5, 20 ], -size => [ 80, 20 ], -tabstop => 1, ); $mw->AddLabel ( -name => "lblDokar", -top => 5, -left => 95, -width => 40, -text => "dokar", ); $mw->AddTextfield ( # text field 2 (there are more) -name => "txtDokar", -pos => [ 90, 20 ], -size => [ 40, 20 ], -tabstop => 1, -text => 'DRW', ); I have tried method GetFocus() which returns a handle but I don't know how to use this handle to get the text from the textfield (I even don't know whether the method returned the handle of the main window or the control which got the focust :-(. I tried it like so: my $handle = $mw->GetFocus(); # get handle of the focusse control my $txt_text = $handle->Text(); # get text of the focussed control That didn't work. Have I overlooked a method which returns the name instead of the handle or how can one access the controls by their handle?
Lik
1

голосов
0

ответ
67

Просмотры

Perl: символ поиска ошибок: /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0: не определено символ: SSLeay

Я строй приложения PERL внутри Docker контейнера на основе Perl: 5,22, который основан на Debian: стретч я использовал CPAN установить кучу связанных PERL пакетов. Я получаю следующее сообщение об ошибке при выполнении сценария odbc_test.pl. Я не столкнулся с этой ошибки до того, вопрос кажется связанным с libssl1.0.0 libssl-Дев, которые я нашел вокруг, но прибегая к помощи я не уверен, что ли, что причиной моих проблем. Я получаю эту ошибку ниже: ошибки поиска символов:: Perl /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0: неопределенный символ: SSLeay PS Я укомплектовать новичок в Perl, моя работа состоит в том, чтобы только упаковать это приложение внутри контейнера Docker так внутренние работы Perl несколько неясный / BLACKBOX мне. Кто-нибудь столкнулся с этой ошибкой раньше?
pelican
1

голосов
0

ответ
25

Просмотры

Ролл файл по сравнению с использованием LOG :: Log4perl

Я использую модуль Log :: Log4perl для сбора данных журнала. После полуночи я пытаюсь свернуть файл через из count.log в count.log.1 в режиме записи, но я не в состоянии сделать это. Ниже приводится информация файл_журнала: log4perl.rootLogger = INFO, Myfile log4perl.appender.myFILE = Вход :: Отправка :: FileRotate log4perl.appender.myFILE.filename = /user/Desktop/Records.log log4perl.appender.myFILE.max = 4 log4perl.appender.myFILE.mode = запись log4perl.appender.myFILE.DatePattern = YYYY-MM-дд log4perl.appender.myFILE.TZ = UTC log4perl.appender.myFILE.layout = PatternLayout # log4perl.appender.myFILE.layout. ConversionPattern =% d% м% п # log4perl.appender.myFILE.layout.ConversionPattern =% м% п log4perl.appender.myFILE.layout.ConversionPattern = [% d] [% F:% L] [% р% с] % м% п
Raj
1

голосов
0

ответ
605

Просмотры

Perl не удалось локали. Как установить это?

Я получаю следующее, когда я пытаюсь и запустить Perl на Ubuntu 18.04: Perl: предупреждение: Настройка локали не удалось. Perl: предупреждение: Пожалуйста, убедитесь, что ваши настройки локали: LANGUAGE = (отключенное), LC_ALL = (отключенное), LC_CTYPE = "en_GB.UTF-8", LANG = "en_US.UTF-8" поддерживаются и установлены на вашей системе. Perl: предупреждение: Падение назад к резервной локали ( "en_US.UTF-8"). Я попытался запустить «DPKG-переконфигурировать локали», но ничего не похоже на работу. Как можно настроить мой локали на 18.04?
John Crawford
1

голосов
1

ответ
59

Просмотры

Сортировать японский словарь поле нестандартного индекс кандзи

Я использовал программу PERL кто-то созданный более 10 лет назад, что вводит текст на японском языке (список словаря) и индекс пользовательских кандзи (например, РТК или KKLC или 2k1KO или частоты) и выводит текст на японском языке на основе наибольшего индекса кандзи появляясь в этом тексте. Идея поместить слова, используя кандзи далее вниз по списку индексов далее вниз по списку словаря. В последние месяцы с обновлением до Strawberry, эта программа перестала работать и выдает следующие ошибки: Использование неинициализированного значения $ маски в VEC на C: /Strawberry/perl/lib/warnings.pm линия 377. Неизвестный PerlIO слой «кодирование» в kanji-sort-1.5.pl линия 8 Неизвестного PerlIO слой "кодирование" в C: /Strawberry/perl/lib/open.pm линия 120. Неизвестный PerlIO слой "кодирование" в C: /Strawberry/perl/lib/open.pm линии 128. Неизвестный PerlIO слой «кодирование» в C: /Strawberry/perl/lib/open.pm линии 129. Использование неинициализированного значения $ маски в VEC на C: /Strawberry/perl/lib/warnings.pm линия 412. Использование неинициализированного значения $ маски в побитовом и (&) в C: /Strawberry/perl/lib/warnings.pm линия 424. Имя "Getopt :: Long :: CallBack :: ПЕРЕГРУЗКИ" используется только один раз: возможно опечатка в C: /Strawberry/perl/lib/overload.pm линии 11. Неизвестный слой PerlIO «кодирование» на kanji-sort-1.5.pl линии 21. Readline () на закрытом файловый дескриптор кандзи на kanji-sort-1.5.pl линии 22. Что я могу сделать, чтобы сделать эту программу функциональным снова? Вот программа. Кажется, достаточно просто с нарушением словаря в персонаж и дал им значение, основанное на кандзи в нем с высшим индексом баллом. #! / USR / бен / Perl -w # $ кандзи сортировки --kanji kanjiorder.txt --sentence поле 2 <mydeck-exported.txt> mydeck-toimport.txt # $ Revision: 1.5 $ $ Date: 2010/01/08 8:22:33 $ # http://ichi2.net/anki/wiki/ContribFugounashi использовать открытый КЯ (: зЬй: кодирование (UTF- 8)); использовать строгий; использовать Getopt :: Long; использовать utf8; мой $ kanjifile; мой $ sentence_field; GetOptions ( 'предложение поля = я' => \ $ sentence_field, 'кандзи = s' => \ $ kanjifile); мой% кандзи; открытая KANJI "
user813036
1

голосов
1

ответ
68

Просмотры

Котировки в PowerShell и Perl лайнеры [дублировать]

Этот вопрос уже есть ответ здесь: Почему PowerShell (с Perl) удаление двойных кавычек в простом заявлении для печати? 3 ответов Какие именно правила кавычки в PowerShell? Одинарные кавычки могут содержать буквенные двойные кавычки. Правильно? PS C: \ Users> ' "Привет мир" "Привет мир" PS C: \ Users> Perl -e 'печать \ "Heloo World \ п \"' Heloo World PS C: \ Users> Perl -e «печать" Heloo World \ п "» PS C: \ Users> См? Даже после того, как окружающие команды в одинарные кавычки, мне нужно, чтобы избежать этих двойные кавычки. Что происходит?
ajith.mk
1

голосов
0

ответ
58

Просмотры

READDIR / File :: Find :: Rule не читает подкаталог и его содержание в Perl

Я попробовал 3 различных способа чтения содержимого папки, и ни один из них не в состоянии идентифицировать подкаталог в установке. Странная часть, когда я воссоздать структуру папок локально, то подкаталог идентифицируется, и я получаю файл я ищу для всех 3-х решений. Этот подраздел каталога создается на лету вместе с другими файлами в папке в настройках. Каждый раз, когда я нахожусь в состоянии прочитать все файлы, которые создаются, но не в подкаталог и его содержимое. Я попробовал ниже решений. Решение 1: использование File :: Find :: Rule; мой $ реж = ''; мои @subdirs = File :: Find :: Rule-> СПРАВОЧНИК> в ($ реж); Еогеасп (@subdirs) {печать "Dir -> $ _ \ п"; } Мой @list = ( "* .txt", "* .rex"); мои @files = File :: Find :: Rule-> файл () -> имя (@list) -> в (@subdirs); Еогеасп (@files) {печать «Файл -> ОС: Suse Linux, Bash / Tcsh оболочки Можно ли предложить что-то, что я могу попробовать. Я не уверен, является ли сво проблема READDIR или что-то другое. Кто-нибудь сталкивалось с этим типом странной проблемы. Что может я делать неправильно? Пожалуйста, предложить то, что я могу сделать? Подпапку, не узнают что-то вроде этого 2018-07-29T22.57.52 Эта папка содержит файлы, я ищу и модули Perl Найти и READDIR не кажется, чтобы проверять это. Пожалуйста, дайте мне знать, если я должен перефразировать мой вопрос. 52 Эта папка содержит файлы, я ищу и модули Perl Найти и READDIR не кажется, проверить это. Пожалуйста, дайте мне знать, если я должен перефразировать мой вопрос. 52 Эта папка содержит файлы, я ищу и модули Perl Найти и READDIR не кажется, проверить это. Пожалуйста, дайте мне знать, если я должен перефразировать мой вопрос.
Kris
1

голосов
1

ответ
43

Просмотры

IO :: Socket :: SSL не удается с IIS 8.5

После сценарий выполняется успешно при запуске с Perl CLI (Windows). Но при запуске через IIS 8.5, он терпит неудачу. использовать IO :: Socket :: SSL; Распечатать
Alpes Maritimes
1

голосов
0

ответ
51

Просмотры

Вы можете получить presigned URL-адреса с помощью Perl Лапы?

Можно ли получить presigned URL-адреса с помощью Perl Лапы? Я пытаюсь загрузить объекты из ведра S3 на локальный сервер и не увенчался успехом до сих пор. Существует способ, чтобы использовать GetObject и читать тело в файл, но объекты, котор я пытаюсь получить это .gz файлы, так что они не могут быть считаны через GetObject. Любые предложения по альтернативам приветствуются.
taylork
1

голосов
0

ответ
38

Просмотры

How to get autocomplete result with Selenium::Remote::Driver

я хочу написать небольшой скрипт, чтобы захватить и играть с результатами автозаполнения поля ввода. Таким образом, я считаю, принципиальным решением с селеном :: Firefox, этой базой на модуль Selenium :: Remote :: Driver, но описание методов без каких-либо примеров. У меня есть этот простой пример, который способен открыть Google и вставить строку поиска. Тогда вы можете увидеть, что список результатов предложен и я хочу, чтобы получить этот список. Но я понятия не имею, как это можно получить? Вот мой код до сих пор: # / USR / бен / Perl использовать строга! использовать предупреждение; использовать Selenium :: Firefox; мой $ Мех = Селен :: Firefox-> новый (startup_timeout => 20, firefox_binary => '/srv/bin/firefox.62.0/firefox', двоичный => '/ USR / местные / бен / geckodriver', marionette_enabled => 1); мой $ поиск = "Perl"; мой $ URL = «https://www.google. send_keys ($ поиска); сна (10); $ Mech-> shutdown_binary; Выход 0; Я не мог найти примеры использования этого модуля Perl - и больше вопросов для него. Как, например: find_element Как я могу включить предупреждения вместо того, чтобы убить сценарий? Или как я могу пройти через объекты страницы Wep? Можно ли подключить к уже открытому браузеру? Описание модуля не понятно для людей, которые не являются экспертами, и авторы не ответили на вопросы, до сих пор. Но я надеюсь, что специалисты здесь может дать мне подсказку? send_keys ($ поиска); сна (10); $ Mech-> shutdown_binary; Выход 0; Я не мог найти примеры использования этого модуля Perl - и больше вопросов для него. Как, например: find_element Как я могу включить предупреждения вместо того, чтобы убить сценарий? Или как я могу пройти через объекты страницы Wep? Можно ли подключить к уже открытому браузеру? Описание модуля не понятно для людей, которые не являются экспертами, и авторы не ответили на вопросы, до сих пор. Но я надеюсь, что специалисты здесь может дать мне подсказку? find_element Как я могу включить предупреждения вместо того, чтобы убить сценарий? Или как я могу пройти через объекты страницы Wep? Можно ли подключить к уже открытому браузеру? Описание модуля не понятно для людей, которые не являются экспертами, и авторы не ответили на вопросы, до сих пор. Но я надеюсь, что специалисты здесь может дать мне подсказку? find_element Как я могу включить предупреждения вместо того, чтобы убить сценарий? Или как я могу пройти через объекты страницы Wep? Можно ли подключить к уже открытому браузеру? Описание модуля не понятно для людей, которые не являются экспертами, и авторы не ответили на вопросы, до сих пор. Но я надеюсь, что специалисты здесь может дать мне подсказку?
Karsten
1

голосов
0

ответ
114

Просмотры

How to run a perl script using PBS on a HPC cluster?

Я борюсь с запуском PERL скрипта, который нужен несколько необходимых модулей (Perl модулей). Единственный способ, которым я могу представить эту работу через: qsub my_code.pbs Непосредственно представленные команды оболочки не имеет корневой администратор. Perl присутствует по умолчанию в версии 5.10, но я, возможно, потребуется PERL 5.16 или выше и не имеют никаких привилегий суперпользователя. ! Я знаю, что до сих пор, что PBS сценарии ожидает любая программа будет загружен как модуль PBS это то, что я попытался с помощью mpirun # / bin / CSH #PBS -l walltime = 10: 00: 00 #PBS -N hello_world1 #PBS -q workq #PBS -l выбрать = 4: ncpus = 16: mpiprocs = 16 #PBS -l место = разброс: без #PBS -V нагрузки модуль "/ USR / бен / Perl" CMD = "Perl t2.pl" mpirun -np 2 $ CMD # Перейдите в каталог, из которого вы представившего работу эхо PBS рабочий каталог $ PBS_O_WORKDIR # эхо сервера PBS по умолчанию $ PBS_DEFAULT эхо $ PBS_NODEFILE Я не уверен, если я должен непосредственно включать этот Perl t2.pl вместо в mpirun. Perl не перечислены в доступных модулей. Даже если я это сделать, потребовав корень администратор, я все еще не уверен, если требуемые модули Perl должны работать или нет? Мой Perl-код требует: использование потоков; использовать темы :: разделяемые; использовать List :: Util КЯ (сумма); использовать YAML; Примечание: модуль Perl является модули CPAN, которые я использую и называю внутри PERL кода. PBS Модуль относится к программным модулям, загруженных с помощью модуля скрипта на HPC кластера. Я до сих пор уверен, если требуемые модули Perl должны работать или нет? Мой Perl-код требует: использование потоков; использовать темы :: разделяемые; использовать List :: Util КЯ (сумма); использовать YAML; Примечание: модуль Perl является модули CPAN, которые я использую и называю внутри PERL кода. PBS Модуль относится к программным модулям, загруженных с помощью модуля скрипта на HPC кластера. Я до сих пор уверен, если требуемые модули Perl должны работать или нет? Мой Perl-код требует: использование потоков; использовать темы :: разделяемые; использовать List :: Util КЯ (сумма); использовать YAML; Примечание: модуль Perl является модули CPAN, которые я использую и называю внутри PERL кода. PBS Модуль относится к программным модулям, загруженных с помощью модуля скрипта на HPC кластера.
BioDeveloper
1

голосов
0

ответ
78

Просмотры

пе хороший синтаксис редактора выделения - Perl переменные не выделены

Иногда мне нужно использовать п хорошего редактора на терминал, чтобы модифицировать файлы Perl. Я не могу найти способ, чтобы получить переменные Perl (вы знаете, что-нибудь, начиная с $, @ или%), чтобы выделить на всех. Файл определения синтаксиса является чрезвычайно сложным и взлом его с моим крайне ограниченным пониманием синтаксиса файла не получает меня нигде. Кроме того: я хотел бы использовать больше цветов, чем красный / синий / желтый / зеленый / голубой / пурпурный / белый / черный, но не нашел способ либо использовать синтаксис RGB для этого. NB: мой эмулятор терминала позволяет 256 цветов. Все указатели оценили. Я вставив ниже синтаксис Perl Защиту файл содержимого: Я пытался играть с различными RGB синтаксисах (слепые, так как я не могу найти определенную спецификацию, или, если это вообще возможно): #rrggbb, @rrggbb,% RRGGBB и т.д. Это для части цветов. Что касается определения переменных: файл четко прописывается цветом для переменных ( «= Var малиновый»). Это работает для других языков, я мог бы успешно играть с переменными цветами и получить переменные выделены. Но на файлах Perl, ноль обнаружение переменного не происходит, независимо от того, какого цвета используются. Там должен быть способ обеспечить, что переменные начинаются с $ / @ /%, но я даже не знаю, с чего начать, чтобы указать это ... Защиту файл на Perl ниже линии. Что ужасно запутанным по сравнению с другими языками файлов синтаксиса, и я думаю, что это моя проблема: слишком сложно взломать. # JOE подсветка синтаксиса файла для Perl # Определение цвета = Idle = препроцессор синий = Комментарий DIM желтый = POD зеленый = Constant зеленый = Строка зеленый = побег полужирный зеленый = полужирный = Ключевое слово жирный синий = Bad жирный красный = Var пурпурного: начать Idle * начать noeat вызов =. Perl () # # Perl как подпрограмма для Mason # .subr Perl # Обнаружение стручка: холостой Idle * idle1 noeat .ifdef mason_line "\ п" простаивает возвращение .else "\ п" простаивает .endif "=" pod_start # позволяют ключевые слова: idle1 Idle * idle1 "#" line_comment_i Перекрасить = -1 "\ п" простаивает noeat "0" first_digit Перекрасить = -1 "1-9" десятичное Перекрасить = -1 "" maybe_float "\"»строка Перекрасить = -1 "'" символ Перекрасить = -1 "`" кавычка Перекрасить = -1 "" простаивает noeat "0" first_digit Перекрасить = -1 "1-9" десятичное Перекрасить = -1 "" maybe_float "\"»строка Перекрасить = -1 "'" символ Перекрасить = -1 "`" кавычка Перекрасить = -1 "$" not_string буфер " простаивает noeat "0" first_digit Перекрасить = -1 "1-9" десятичное Перекрасить = -1 "" maybe_float "\"»строка Перекрасить = -1 "'" символ Перекрасить = -1 "`" кавычка Перекрасить = -1 "$" not_string буфер "
Peyo61
1

голосов
0

ответ
60

Просмотры

sub command in Perl not executing when executed by cron

У меня есть два сценария Perl: один тянет данные из одной системы и записывает в файл CSV, а другой будет выполнять против этих данных путем выталкивания ряд файлов после того, как первый скрипт собирает список IP-адресов, чтобы раздвинуть файлы. Когда я запускаю это вручную в командной строке, я могу видеть результаты первой команды генерируемой, получить электронную почту, и после этого я могу увидеть последнюю команду, выполняемую с результатами и электронную почту от этого. Но сегодня, когда первый сценарий был запущен хронами, я только получил письмо со списком IP-адреса, а не результаты из файлов толкнули хозяин. Время, необходимое для команды для запуска варьируется, но обычно это занимает 1-2 минуты. Это последние несколько строк, которые работают в первом сценарии Perl. По электронной почте отправляется с вложениями, если есть хосты, которые отвечают критериям подтягивания и как только выполняется, последняя строка выполняет нажим со ссылкой на CSV файл вывод, который содержит IP-адрес хоста. Система ( "эхо '' | mailx -s \" $ payloademailsub \ "-a $ payloadoutputFile -a $ wlsinfoFile $ электронная почта </ DEV / нуль"); } Еще {система ( "эхо '' | mailx -s \" $ payloademailsubnodup \ "$ электронной почты </ DEV / нуль"); } Система ( "/ бен / Баш /usr/application/co/bin/webLogicPayload.bash </usr/application/co/reports/pushPayload/weblogicHosts.csv"); Это запись хрон. Команда источника требуется, чтобы тянуть в локальных пользовательских переменных и app_setup представляет собой файл, связанных с приложением. 0 15 * * 1-5. $ HOME / app_setup; Источник ~ / .bashrc; $ HOME / приложение / ш / weblogicHostReport.pl Предполагая, что это хроны связанных, так как он будет работать вручную,
Jon T
1

голосов
0

ответ
54

Просмотры

Извлечение данных из текстового файла комплекс вывода с помощью Perl и размещения в новый текстовый файл

Полный текст выходного файла составляет сотни строк длиной, с соответствующими ядерными сечениями и множество других данных, которые не нужны для этой конкретной проблемы. Я пытаюсь извлечь столбцы данных в соответствии с «выгоранием» и первый «K-INF» из файла, который я прилагается. Я пытаюсь извлечь эти данные и поместить его в отдельный файл. Я новичок, и есть подобный сценарий PERL от профессора. Я пытался адаптировать его к информации Ищу, но единственным результатом я получаю являются операторы печати 2. Какие-либо предложения?
Ryan Stolt
1

голосов
1

ответ
67

Просмотры

Perl simple webserver not handling multiple requests simultaneously

I wrote a simple webserver which should continuously handle simultaneous requests. But, even after detaching the threads it doesn't handle simultaneous requests. Can someone help? Webserver.pl use HTTP::Daemon; use threads; my $webServer; my $package_map = {"test" => "test"}; my $d = HTTP::Daemon->new(LocalAddr => $ARGV[0], LocalPort => 80, Listen => 20) || die; print "Web Server started!\n"; print "Server Address: ", $d->sockhost(), "\n"; print "Server Port: ", $d->sockport(), "\n"; while (my $c = $d->accept) { threads->create(\&process_req, $c)->detach(); } sub process_req { my $c = shift; my $r = $c->get_request; if ($r) { if ($r->method eq "GET") { my $path = $r->url->path(); my $service = $package_map->{$path}; if ($service) { $response = $service->process_request($request); } } } $c->close; undef($c); } test.pm sub process_request { threads->create(\&testing)->detach(); my $response = HTTP::Response -> new (200); $response -> header('Access-Control-Allow-Origin', '*'); $response -> content("Success"); return $response; } sub testing { my $command = 'echo "sleep 100" | ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 '; if (system($command) != 0) { print "FAILED\n"; } }
Soumya dutta
1

голосов
0

ответ
38

Просмотры

XML: Twig выполнять несколько обработчиков хворостины на файл

У меня следующая проблема: мне нужно изменить файл XML с помощью 4 или 5 обработчиков хворостины. В настоящее время, каждый раз, когда я анализирую один из обработчиков прута над файлом я тогда нужно сохранить файл прежде чем он сможет разобрать следующий обработчик над теперь уже измененными данными. Это требует, чтобы я постоянно необходимости сохранить файл для каждого обработчика. Есть ли способ, чтобы открыть файл один раз, запускай все обработчики один за другим, а затем сохраните файл в конце? Причина мне нужно это, что я надеюсь, что это ускорит мою программу, которая в настоящее время использует описанную выше процедуру в тысячи раз и, следовательно, открывает и закрывает много файлов. Я думал, что если у меня есть п обработчики для конкретного файла и т файлов, то мне нужно выполнить сохранение файлов Н * м раз. Я хотел бы быть в состоянии разделить это число на п. Я посмотрел на вариант parsefile_inplace в XML прутик, но не могу заставить его работать! Дополнительно: Я должен отметить, что ход некоторых обработчиков прута в цепи зависит от результатов предыдущих обработчиков и, следовательно, не все обработчики могут работать вместе в одном операторе. Большое спасибо.
Chazg76
1

голосов
0

ответ
43

Просмотры

Как я могу получить трассировку стека ошибок в Mojolicious?

У меня есть некоторые XML процедуры разбора в моем контроллере (в исполнение XML :: Libxml :: Simple) Во время страницы визуализации я получил и ошибки, и нет «кран для более» связи с StackTrace, который Mojolicious обычно производит когда лицо умирает во внешнем модуль (ниже приведен пример) Почему он не получает StackTrace и как я могу получить трассировку стека вручную? Я пытался вставить использовать карп; $ SIG {__ DIE__} = {к югу app-> лог-> ошибка ( "StackTrace:" Карп :: longmess ($ _ [0]).); }; в моем приложении, но вывод не был произведен
Paul Serikov
0

голосов
1

ответ
12

Просмотры

Perl ключ соответствия Grep из хэш-таблицы

Я имею дело с хэш в Perl. Я использую следующую инструкцию, чтобы проверить, если переменная соответствует ключ в моей хэш-таблицы. Оператор уже имеет значение верно. Так Grep работает. Но как я теперь получить хэш-ключ & значение, где есть совпадение? если (ключи GREP {/.*$var1*/}% my_hash) {#print ключ и значение, которое приводит от Grep? }
user1987607
1

голосов
0

ответ
72

Просмотры

Сделать запрос обратной передачи питона или Perl

I'm trying to do a postback request to a site built in ASP.NET, my first attemp was to do it in Perl, using Mechanize, then I tried Python and no results... I was reading that might be a damaged SSL or the postback itself. I'm doing these because there's a file that I want to download daily and downloading manually it will cost a lot of time, but I haven't been able to automatize it. I'm open to any language or suggestions. The following is my perl code (Note: i I had to desactive SSL Certification because when it was active I got no response from the server): use warnings; use strict; use WWW::Mechanize; use Data::Dumper; use Time::Piece; use Time::Seconds; use Try::Tiny; use Log::Logger; use File::Basename; $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; sub getLoggingTime { my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); my $nice_timestamp = sprintf ( "%04d%02d%02d %02d:%02d:%02d", $year+1900,$mon+1,$mday,$hour,$min,$sec); return $nice_timestamp; } my $dirname = dirname(__FILE__); my $log = new Log::Logger; $log->open_append($dirname . "/pmlcenace.log"); $log->log(getLoggingTime() . " INFO: Inicio del Script pmlcenace.pl"); # ============================= # Seteo de Variables generales # ============================= my $maxtry = 6; my $dest = qq(C:/Users/MyUser/Desktop/Precios/); my $url = 'https://www.cenace.gob.mx/SIM/VISTA/REPORTES/H_CapacidadTransfer.aspx?N=263&site=&tipoArch=C&tipoUni=SIN&tipo=Diarios'; my $params = [ __ASYNCPOST => 'true', __EVENTARGUMENT => '{"commandName":"Check","index":"0:0"}', __EVENTTARGET => 'ctl00$ContentPlaceHolder1$treePrincipal', ctl00_ContentPlaceHolder1_treePrincipal_ClientState => '{"expandedNodes":[],"collapsedNodes":[],"logEntries":[],"selectedNodes":[],"checkedNodes":["0","0:0"],"scrollPosition":0}', __VIEWSTATE => '/w edited for space and viewing reasons', __VIEWSTATEGENERATOR => '955A55B8', __EVENTVALIDATION => '/wEdAAOCpQshmYscjMDA9x+69HkswfFVx5pEsE3np13JV2opXVEvSNmVO1vU+umjph0DtwdLoqQBBqXirK2Np+DpA6TO2lTaZh4NXJjUyfeW6oTM9g==', 'ctl00_ContentPlaceHolder1_ListViewNodos_ClientState' => '', 'ctl00$ContentPlaceHolder1$NotifAvisos$hiddenState' => '', 'ctl00_ContentPlaceHolder1_NotifAvisos_XmlPanel_ClientState' => '', 'ctl00_ContentPlaceHolder1_NotifAvisos_TitleMenu_ClientState' => '', 'ctl00_ContentPlaceHolder1_NotifAvisos_ClientState' => '', 'ctl00$ContentPlaceHolder1$btnCerrarPanel' => '', 'ctl00$ContentPlaceHolder1$toolkit' => '{"expandedNodes":[],"collapsedNodes":[],"logEntries":[],"selectedNodes":[],"checkedNodes":["0","0:0"],"scrollPosition":0}' ,''=>'']; # =========================================== # Configuración e inizialización de Mechanize # =========================================== my $mech = WWW::Mechanize->new(); $mech->show_progress(1); $mech->max_redirect(0); $mech->agent_alias('Windows Mozilla'); #$mech->add_header( # User_Agent => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' # ); # ========================================== # POST Request a la página del CENACE # Nota: Intenta hasta 5 veces, si no exit: 1 # ========================================== while ($maxtry > 0) { $log->log(getLoggingTime() . " INFO: POST Request: " . $url); $mech->post($url,$params); if ($mech->status == '200') { last; } else { $maxtry--; $log->log(getLoggingTime() . " WARN: POST Request fallido. [" . $maxtry . "] Intentos restantes"); if ($maxtry == 1) { $log->fail(getLoggingTime() . " ERROR: Numero máximo de intentos alcanzados"); exit 1; } sleep(1.5); } } print "\n\n\n\n\n Validating: AFTER DOING THE POST:\n"; print $mech->content( base_href => [my $base_href|undef] ); if ($mech->is_html() == 1) { print "\n"; print "It DOES have HTML"; print "\n"; } else { print "\n"; print "Do NOT have HTML"; print "\n"; } The response I got is RedirectError, like this: 1|#||4|87|pageRedirect||%2fContacto.aspx%3faspxerrorpath%3d%2fSIM%2fVISTA%2fREPORTES%2fH_CapacidadTransfer.aspx| But that request have to return a HTML code that has the links I need for the files. Maybe I'm missing something I don't know. I really would appreciate any kind of help or solution. Thanks
Roger Nieto
1

голосов
0

ответ
66

Просмотры

parsing syntax with Perl

Я использую Синтаксическая :: RecDescent (ниже код), чтобы разобрать что-то подобное это х = 2 и у = 2 и г = 3, почему код ниже только печать х! = 2, а не все выше линии (то есть х! = 2 и у! = 2 и г! = 3) даже выше строка анализируется код ниже идеи, что плохого в коде ниже? использовать строгий; использовать предупреждение; использовать Синтаксическую :: RecDescent; мой $ вход = 'х = 2 и у = 3 и г = 3'; мой $ грамматика = д {startrule: выражение (s?) выражение: оператор оператора (? s) {вернуть $ пункта {заявление}. $ Пункт {оператор}; } Утверждение: операнд равно значение {возвращение $ пункт {операнд} «. знак равно .»$ Пункт {значение}} равна: / \ = / оператор: / и / я операнд: / \ ш + / значение: / \ W + /}; мой $ парсер = Анализировать :: RecDescent-> новый ($ грамматика); мой $ результат = $ parser-> startrule ($ вход) или умереть "Не удалось разобрать! \ п"; Использование Data :: Dumper; Хранитель $ Data :: :: Отступ = 1; Хранитель $ Data :: :: Sortkeys = 1; печать Dumper $ результат;
jsor
1

голосов
0

ответ
65

Просмотры

S3 несоответствие подписи с Amazon S3 :: Perl

Когда я пытаюсь генерировать заголовок запроса вместе с подписью, я получаю сообщение об ошибке несоответствия подписи. Я использовал Amazon :: модуль Perl S3 для генерации запроса. И при анализе различий в подходе, как подпись вычисляется между этим модулем и AWS CLI, я узнал, что, когда я закомментировать строку ниже от S3.pm внутри _make_request () метод, делает подпись совпадает. $ Самостоятельно -> _ add_auth_header ($ http_headers, $ метод, $ путь), если не существует $ заголовки -> {Авторизация}; Могу ли я в виду это правильно или есть любой другой модуль можно использовать только для создания подписи в одиночку или в последнем варианте, я могу написать свой собственный модуль, который наследует фактический модуль (если это возможно или имитировать фактический модуль с пользовательскими изменениями) ,
tuxian
1

голосов
1

ответ
55

Просмотры

Вставка картинки в текстовый документ с PERL Win32 :: OLE

Я занимаюсь разработкой инструмента для создания документов Word, с Win32 :: OLE в Perl CGI, и я столкнулся с проблемой я не могу решить: когда я вставить картинку, она показывает в самом конце сгенерированного документа, где бы я попросил его включить. Вот пример кода, который объясняет мои заботы, где $ go_document это мой документ Word анс $ as_file путь к моему файлу изображения: $ go_document-> ActiveWindow-> выбора-> TypeText ( «перед картиной \ п»); мой $ последний = $ go_document-> Paragraphs-> Count; мой $ пункт = $ go_document-> Пункты ($ последнего); $ Go_document-> InlineShapes-> AddPicture (. WorkDir () $ as_file, 0, 1, $ пара-> Range); $ Go_document-> ActiveWindow-> выбор-> TypeText ( "после того, как изображение \ п"); Результат включает в себя ожидаемые текстовые строки, но изображение показывает после того, как второй. Более того, если есть 2 фотографии, вторая показывает в конце документа, но перед первым! Есть ли что-то делать, и я забыл? Заранее благодарю за любую помощь.
JNM
1

голосов
0

ответ
67

Просмотры

Ошибка Perl при запросе прокси для HTTPS сайта. AnyEvent статус 596

при запросе через прокси-сервер, который поддерживает протокол HTTPS на HTTPS сайте. «Причина» Ошибки => «ssl23_get_server_hello приходит: неизвестный протокол», «Status» => 596, я использую библиотеку AnyEvent, я подозреваю, что проблема с запросом на подключение, но я не могу решить вообще, я буду очень благодарен за подсказку. использовать строгий; использовать utf8; Использование Data :: Dumper; использовать AnyEvent :: HTTP; использовать MIME :: Base64; использовать AnyEvent :: Connector; мои $ печенье = {}; мой $ сделано = AnyEvent-> condvar; мой $ request_watcher = http_request (прибудет => 'https://randomup.ru', (KeepAlive => 1, упорный => 1, рекурсия => 0, cookie_jar => $ печенье, тайм-аут => 10, заголовки => { 'User-Agent' => «Mozilla / 5.0 (Windows NT, 10.0; Win64; x64) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / Safari 69.0.3445.2 / 537,36' , 'Accept-Encoding' => 'GZIP', 'Accept-Language' => 'ан-нас, еп, д = 0,5' , 'Accept-Charset' => 'ISO-8859-1, UTF-8; д = 0,7, *; д = 0,7', 'Proxy-Authorization' => 'Базовый'. encode_base64 (.. 'XXX' ':' 'XXX'),},), on_header => суб {печати STDERR Dumper @_; возвращает 1; }, Прокси => [ 'XX.XX.XX.XX', 8000, 'HTTP'], к югу {печати STDERR Dumper @_; # $ Done-> отправить; }); $ Done-> RECV (); Подозреваю, что метод tcp_connect также необходим, но я не понимаю, как его настроить. Так прокси для работы LWP требуют LWP :: UserAgent; мой $ иа = LWP :: UserAgent-> новый; $ Ua-> тайм-аут (10); $ Ua-> прокси ([ 'HTTPS', 'HTTP'], 'HTTP: // XXX: [email protected]: 8000'); # $ Ua-> прокси ([ 'HTTPS'], 'https: // прокси: 8080'); # Не удается # $ ua-> env_proxy; # Это также не удается. мой $ ответ = $ ua-> Get ( 'https://randomup.ru'); если ($ response-> is_success) {печать $ response-> decoded_content; # Или что-то еще} {умереть $ response-> status_line; } К сожалению, я не могу написать полный прокси-сервер, потому что он заплатил. Но если без него абсолютно ничего, то я могу написать. если ($ response-> is_success) {печать $ response-> decoded_content; # Или что-то еще} {умереть $ response-> status_line; } К сожалению, я не могу написать полный прокси-сервер, потому что он заплатил. Но если без него абсолютно ничего, то я могу написать. если ($ response-> is_success) {печать $ response-> decoded_content; # Или что-то еще} {умереть $ response-> status_line; } К сожалению, я не могу написать полный прокси-сервер, потому что он заплатил. Но если без него абсолютно ничего, то я могу написать.
Denis Trifanov
1

голосов
1

ответ
40

Просмотры

Perl Gnuplot inline Histogram

Я пытаюсь накормить выход ого хэша колонки для простого BarChart с помощью GNUPLOT. По какой-то причине не любит что-то о моей хэша, или по какой-то причине рядный данных не является правильным. Я только получить первую строку и бросает несколько ошибок. открываю $ из '| -', 'Gnuplot'; скажем, $ из «снят с ключом»; скажем, $ из «установлен автоматический х»; скажем, $ из «набор ylabel„Сбой Count“»; скажем, $ из «разрыв гистограммы набора стилей 5»; скажем, $ из "участок '-' с использованием 2: xtic (1)"; Foreach (ключи% fail_counts) {если ($ fail_counts {$ _}> 1) {$ сказать из "$ _ $ fail_counts {$ _}"; }} Скажем, $ из 'е'; смывать $ вне; ; закрыть $ вне; Вот что мой хэш выглядит следующим образом: blah1 8 blah2 8 blah3 65 blah4 39 blah5 23 blah6 12 Ошибки: Предупреждение: пустой диапазон х [0: 0], приспосабливаясь к [-1: 1] Внимание: пусто у диапазона [8: 8 ], приспосабливаясь к [7,92: 8,08] Вот как заполняется хэш, его просто табуляция отдельных рядов данных: сбой #sum и сюжет категорий% fail_counts = (); Еогеасп $ неудачно (@fail_array) {@ temp_array = Раскол / \ s + /, $ неудачу; если (существует $ fail_counts {$ temp_array [4]}) {$ fail_counts {$ temp_array [4]} = $ fail_counts {$ temp_array [4]} + 1; } еще {$ fail_counts {$ temp_array [4]} = 1; }}
Kuli
1

голосов
0

ответ
46

Просмотры

Pass многослойную / форм-данных между двумя PERL проектов с использованием настоев

Поэтому мне нужно, чтобы передать многокомпонентные данные формы между двумя проектами. Первый код проекта (я получаю данные формы и сделать некоторые действия там): мой $ FormData = $ self-> req-> params-> to_hash; // какие-то действия с $ FormData здесь $ data_request -> {some_content} = {содержание => $ FormData -> {contentstr}}; $ Data_request -> {FileData} = {файл => $ FormData -> {имя файла}}; мои $ заголовки = { 'Content-Type' => 'многочастному / форм-данных'}; мой $ URL = Mojo :: url-> новый ($ конф -> {хост}); $ Url-> путь ($ конф -> {my_url}); мой $ Те = $ ua-> пост ($ URL => $ заголовки => форма => $ data_request); Но по какой-то причине я не могу получить файл во втором проекте, используя $ self-> req-> загрузить ( «имя файла») Если я загрузить файл в первом проекте он работает нормально. Содержание параметры доступны во втором проекте, но не файл. Почему я не могу просто передать двоичные данные?
Daniella
1

голосов
1

ответ
53

Просмотры

error while converting json array to csv using perl

im using a perl script to convert from JSON to csv. the sampple json is like this, [{"id":100, "primary-codes":["E0181V00","E0226V00"], "substitute-codes":["E0181D00","E0226100"], "fk-id":2294}] and the perl code i used to convert this to csv is, #!/usr/bin/perl use utf8; use warnings; use strict; use lib '.'; use JSON::PP qw(decode_json); my $json; { local $/; open my $fh, '>:encoding(UTF-8)', $filename) or die "Could not open file '$filename' $!"; say $fh 'nk_id,prim_cd,sub_cd,fk_id'; for (@$perl){ my $nk_id = '"' . $_->{"id"} . '"'; my $prim_cd= '"' . $_->{"primary-codes"} . '"'; my $sub_cd= '"' . $_->{"substitute-codes"} . '"'; my $fk_id= '"' . $_->{"fk-id"} . '"'; say $fh "$nk_id," . "$prim_cd," . "$sub_cd," . "$fk_id"; } close $fh; The output i get is like this, nk_id,prim_cd,sub_cd,fk_id 100,ARRAY(0x201549f8),ARRAY(0x20154a88),2294 but i want it to be, 100,"E0181V00,E0226V00","E0181D00,E0226100",2294 i tried using , my $prim_cd = '"' . join ",", @{ $perl->[0]{"primary-codes"} } . '"'; But it just returns the count and not the elements. Please help me out with this issue. Thanks!
Sultan
1

голосов
0

ответ
59

Просмотры

Devel :: Обложка - Невозможно пометить ветку как uncoverable

Я честно не знаю, если это ошибка или я что-то отсутствует. Devel :: Обложка игнорирует мою # uncoverable ветви правды на основе предыдущего состояния как-то. У меня есть 2 файлов - Test и test2 - uncoverable в тесте. Теперь, когда условие триггера (см ниже) не закомментировано я получаю 50% охвата филиального который выглядит следующим образом: Теперь закомментируйте состояние триггера и снова запустить все, и я получаю: Ветка теперь правильно игнорироваться, как uncoverable. Единственное, что изменилось было закомментировать состояние триггера. Я действительно не понимаю, такое поведение - если кто-нибудь был бы готов попробовать это, чтобы увидеть, если это мне не понять что-то или ошибка. Отказ от ответственности: Я не гуру Perl: ) Я попытался упростить это больше, но я не мог воспроизвести его в противном случае - даже упрощение это ценится - возможно, это поможет проследить, чтобы корневая причину. EDIT: Я сделал этот репозиторий, чтобы сделать это легче воспроизвести: https://github.com/lukaskuzmiak/Devel--Cover_coverage_issue_PoC пакет My :: Test; использовать 5.026; использовать строгий; использовать предупреждение; использовать My :: test2; суб тест {мой $ test2 = My :: Test2-> новый ({}); если ($ test2> 1) {сказать 'что-то'; } # Давайте назовем это "триггер условие" # uncoverable ветвь верно $ test2-> ASDF ({переменная => 'ASDF'}) или сказать 'что-то другое'; возвращает 1; } 1; И второй Test2 пакет My :: test2; использовать 5.026; использовать строгий; использовать предупреждение; к югу новый {мое ($ класс $ арг) = @_; мой $ сам = {}; вернуть благословлять $ самоощущение, $ класс; } Суб ASDF {мой ($ класс $ арг) = @_; возвращает 1; } 1;
lukash
1

голосов
0

ответ
59

Просмотры

В противном случае, чтобы начать PERL программы из-за недостающие модули

Хорошо, так что я не знаком с Perl и все, что я хочу, чтобы запустить биоинформационный инструмент здесь на сервере, где у меня нет привилегий суперпользователя. Но я продолжаю получать ошибки о недостающих модулей: модуль Perl Archive :: Extract (в сердечнике, так как 2007-07-07) не установлен на этой машине! модули Perl доступны для загрузки на http://www.cpan.org/ Если CPAN установлен, попробуйте следующее: CPAN установить архив :: Extract выход Наш системный администратор огромный Ричард, так что, естественно, я пошел искать ответы в Интернете, и это только хуже! Я пытался настроить PERL5LIB, я нашел и установил cpanm от этого ответа. Затем она работала, но когда я попытался установить архив :: Extract он сказал: Архив :: Extract в актуальном состоянии. (0,80) А теперь я собираюсь сойду с ума. Пожалуйста, помогите мне, прежде чем я врезаться, что сервер с кувалдой (шучу,
Poiu Rewq
1

голосов
1

ответ
32

Просмотры

“TransitionRejection” trying to download a file with a new element from JS using selenium

Я хочу, чтобы автоматизировать загрузку с большим количеством файлов веб-сайта. Для того, чтобы сделать это, я перебирать много страниц получать идентификатор из файлов. Я делаю это с помощью селена и сценарий Perl. Поскольку нет функциональности напрямую загрузить файл в селене, и я не могу использовать какое-то завиток, потому что мне нужна сессия селена Я пытаюсь использовать следующий метод обход, который я уже использовал в других проектах. Я создаю элемент JS и выполнить сценарий с URL для каждого файла, например: Var а = document.createElement ( «а»); a.setAttribute ( "HREF", "https://myurl.com/id1/export?format=TCX"); a.setAttribute ( "загрузить", "https://myurl.com/id1/export?format=TCX"); document.body.appendChild (а); a.click (); document.body.removeChild (а); Но когда я пытаюсь сделать это, я стал следующее сообщение об ошибке в сценарии: Ошибка при выполнении команды: несвежий опорный элемент: Опорный элемент является устаревшим; либо элемент больше не прикреплены к DOM, это не в текущем контексте кадра, или документ был обновлен в /Library/Perl/5.18/Selenium/Remote/Driver.pm линии 391. в / Library / Perl / 5,18 / Селен / Remote / Driver.pm линия 348. Если я воспроизвести его непосредственно в консоли Firefox, я получаю это: TransitionRejection (тип: 2, сообщение: переход был заменен другим переходом, деталь: переход # 2 ( ' top.ids.info.byId '{ "myId1": "XXXXX", "myId2": "YYYYYY"} -> 'домой'{ "feedId": NULL, "тег": нуль})) Если я просто получить доступ к URL с нормальным ГЭТ из браузера я получаю приглашение скачать без проблем. (До тех пор, как я вошел в) Если я получаю URL с селеном он работает для первого URL, но затем он остается застрял там и не загружает второй файл. $ Функции драйвера> Get ($ download_url1); # Это один скачивается $ функции драйвера> Get ($ download_url2); # Эта строка не выполняется
nck
1

голосов
1

ответ
35

Просмотры

Где я могу установить UserAgent в конфигурации Strawberry Perl,?

У нас есть прокси-сервер здесь и все интернет-трафик проходит через это. Команда: CPAN пакет не может со следующей ошибкой: LWP неудачу с кодом [403] сообщение [Browserblocked] Я думаю, что только конкретные браузеры позволяют через прокси-сервер, так что мне нужно, чтобы установить UserAgent для CPAN. Где я могу установить? Я не вижу ничего подобного в о конфе.
lmocsi
1

голосов
1

ответ
50

Просмотры

С помощью пункта или внутри находки ()

Мне нужно получить одну строку из таблицы базы данных с помощью DBIx :: Class, когда один из двух столбцов дескриптора подобен предоставленные данными. My SQL выберите выглядит следующим образом: выберите идентификатор из продуктов, где (код = «VALUE» или описание, как «% VALUE%») Таблица имеет уникальное ограничение, что гарантирует мне, что только одна строка существует для VALUE. Как я могу сформулировать это SQL с помощью DBIx :: Class? Следующий код возвращает мне значение 1, но не правильные данные: мой $ = «параметров VALUE»; мой $ Рез = $ c-> притон -> {products_rs} -> Поиск (-или => [{код => { '=', $} парам}, {описание => { 'как', '%'. $ пары '%'}}],). Я должен использовать метод поиска, чтобы вернуть одну строку, но тогда я не могу использовать -или положение. Любое предложение? Привет, я вернулся. Я решил создать себе классы. Первый класс схемы: пакет прод :: Schema; использовать utf8; использовать Муза; использовать MooseX :: MarkAsMethods Autoclean => 1; продолжается 'DBIx :: Class :: Schema'; __PACKAGE __-> load_namespaces (default_resultset_class => 'ResultSet',); __PACKAGE __-> мета-> make_immutable (inline_constructor => 0); 1; Я использую базовый класс Результат для моего стола: пакет тычок :: Schema :: Result; использовать строгий; использовать предупреждение; Использование базы QW (DBIx :: Класс :: Ядро); __PACKAGE __-> load_components ( "InflateColumn :: DateTime", "TimeStamp", "EncodedColumn"); 1; Каждая таблица затем использует ResultSet базового класса: пакет тычок :: Schema :: ResultSet; использовать строгий; использовать предупреждение; Использование базы QW (DBIx :: Класс :: ResultSet); __PACKAGE __-> load_components ( 'Helper :: ResultSet :: OneRow'); 1; и класс продукта сам: пакет прод :: Schema :: Результат :: Продукты; использовать строгий; использовать предупреждение; использовать utf8; использовать Муза; использовать MooseX :: NonMoose; использовать MooseX :: MarkAsMethods Autoclean => 1; расширяет ':: Schema лезвием :: Result'; __PACKAGE __-> таблица ( "prod.products"); __PACKAGE __-> add_columns ( "Идентификатор", {тип_данных => "UUID", значение_по_умолчанию => \ "uuid_generate_v4 ()", is_nullable => 0, размер => 16,}, "код", {тип_данных => "VARCHAR" , is_nullable => 0, размер => 2}, "название", {тип_данных => "VARCHAR", is_nullable => 0, размер => 128},); __PACKAGE __-> set_primary_key ( "ID"); __PACKAGE __-> add_unique_constraint ( "uk_products_code", [ "код"]); __PACKAGE __-> м-> make_immutable; 1; Приложение использует этот класс модели: пакет тычок :: Model :: DB_T; использовать строгий; использовать базовый 'Catalyst :: Model :: DBIC :: Schema'; __PACKAGE __-> конфигурации (schema_class => 'прод :: Schema', connect_info => {DSN => 'DBI: Pg: имя_бд = p12; хост = локальный' пользователь => 'имя пользователя', пароль => 'пароль', AutoCommit => д {1},}); 1; Корень заключается в следующем: пакет прод :: Controller :: Root; использовать Муза; использовать пространство имен :: Autoclean; Использование Data :: Dumper; BEGIN {расширяет 'Catalyst :: Controller'} __PACKAGE __-> CONFIG (пространство имен => ''); подиндекс: Путь: Args (0) {мой ($ я, $ с) = @_; мой $ Продукты = $ c-> модель ( 'DB_T :: Продукция'); мой $ продукт = $ Продукты-> Поиск (-или => [{код => { '=', 'х'}}, {имя => { 'как', '%'. 'X'. '%' }}], ) -> one_row; мой $ ул = «$ продукт-> имя». $ C-> response-> тело ( 'продукт:'. $ Ул); } Суб умолчанию: Путь {мой ($ я, $ с) = @_; $ C-> response-> тело ( 'Страница не найдена'); $ C-> response-> статус (404); } Суб конец: ActionClass ( 'RenderView') {} __PACKAGE __-> мета-> make_immutable; 1; Теперь я использую этот one_row из этого вспомогательного класса, я получаю желаемый результат, но SQL заявление остается открытым до I выключения приложения. @Alexander Hartmaier вы сказали, что я должен избежать этого. Но как? Что не так с этим кодом? } Суб конец: ActionClass ( 'RenderView') {} __PACKAGE __-> мета-> make_immutable; 1; Теперь я использую этот one_row из этого вспомогательного класса, я получаю желаемый результат, но SQL заявление остается открытым до I выключения приложения. @Alexander Hartmaier вы сказали, что я должен избежать этого. Но как? Что не так с этим кодом? } Суб конец: ActionClass ( 'RenderView') {} __PACKAGE __-> мета-> make_immutable; 1; Теперь я использую этот one_row из этого вспомогательного класса, я получаю желаемый результат, но SQL заявление остается открытым до I выключения приложения. @Alexander Hartmaier вы сказали, что я должен избежать этого. Но как? Что не так с этим кодом?
1

голосов
0

ответ
42

Просмотры

Perl - не удается получить данные с сервера RPC Metasploit

То, что я использовал в качестве ресурса: https://metasploit.help.rapid7.com/v1/docs/rpc-api Сначала я начал ВБГ сервер RPC: msfrpcd -U ВБГ -P тест -f -S -a 127.0.0.1 [*] MSGRPC начиная с 127.0.0.1:55553 (NO SSL): Msg ... [*] MSGRPC готов в 2019-01-11 00:56:29 +0900. после того, что сервер и показывает вверх через браузер в http://127.0.0.1:55553 сценарий, я использовал при использовании XML :: RPC, чтобы получить данные с помощью XML :: RPC; использовать строгий; использовать предупреждение; мой $ фм = XML :: rPC-> новый ( 'http://127.0.0.1:55553/api/'); мой $ сессия = $ FM-> вызов ( 'auth.login', {имя пользователя => 'ВБГ', пароль => 'тест'}); мой $ х = $ FM-> вызов ( 'group.command'); #API Ошибка при запуске сценария: никаких данных /usr/local/share/perl/5.26.1/XML/RPC.pm линии 288.
Mobrine Hayde
1

голосов
0

ответ
81

Просмотры

Программа Подмножество сумма (Perl)

Приведенный ниже код представляет собой алгоритм, который пытается решить известную проблему подмножества суммы. Кто-то дал мне этот код, я сделал несколько настроек и настроек к нему, так что будет работать должным образом в Perl (приведенный выше код будет работать). Здесь, «а» множество целых чисел, и «б» есть сумма, и программа пытается найти подмножество «а», которое подводит к «Ъ», а затем выводит результат в конце. Однако, когда индекс «а» (количество чисел в наборе) является относительно большим (около 200), программа не для печати всех подмножеств «а» этой суммы на «б». Я знаю это, потому что я намеренно выбрал подмножество «а», которая суммирует в целое «б» я выбрал. Программа не смогла напечатать любое подмножество «а» (в то время как это было очевидно, существовало по крайней мере один). Полагая, что это переполнение какого-то, я попробовал выходной каталог файлов, и снова, проверяя файлы, я ничего не нашел. Есть идеи? суб Решите {мой ($ цель, $ элементов) = @_; # Для дополнительной скорости, вы можете удалить следующую строку мой (@results, $ RecursiveSolve, $ nextValue); $ RecursiveSolve = юг {мой ($ currentGoal, $ включен, $ индекс) = @_; для (; $ индекс <@ $ элементов; ++ $ индекса) {$ nextValue = $ элементов -> [$ индекс]; # Так как элементы сортируются, нет смысла пробовать #, не последний элемент, если это не меньше, чем цели / 2: если ($ currentGoal> 2 * $ nextValue) {$ RecursiveSolve -> ($ currentGoal - $ nextValue, [@ $ включен, $ nextValue], $ индекс + 1); } Еще {нажимные @results [@ $ включен, $ NextValue], если $ currentGoal == $ nextValue; вернуться, если $ nextValue> = $ currentGoal; }} # Конец для}; # Конец $ RecursiveSolve $ RecursiveSolve -> ($ цель, [], 0); UNDEF $ RecursiveSolve; # Избегайте утечки памяти из кругового опорного возврата @results; } # Конец решить мою @results = Решите (Ь, [а]); печать "@ $ _ \ п" для @results; Для примера, я пошел random.org и породил множество «а» 200 случайных чисел от 1 до 2000, взял 4 из этих случайных чисел 200, и создал сумму «Ъ». Тогда код выглядит следующим образом: суб Решите {мой ($ цель, $ элементов) = @_; # Для дополнительной скорости, вы можете удалить следующую строку мой (@results, $ RecursiveSolve, $ nextValue); $ RecursiveSolve = юг {мой ($ currentGoal, $ включен, $ индекс) = @_; для (; $ индекс <@ $ элементов; ++ $ индекс) {$ = $ nextValue элементы -> [$ индекс]; # Так как элементы сортируются, нет смысла пробовать #, не последний элемент, если это не меньше, чем цели / 2: если ($ currentGoal> 2 * $ nextValue) {$ RecursiveSolve -> ($ currentGoal - $ nextValue, [@ $ включен, $ nextValue], $ индекс + 1); } Еще {нажимные @results [@ $ включено, $ nextValue], если $ currentGoal == $ nextValue; вернуться, если $ nextValue> = $ currentGoal; }} # Конец для}; # Конец $ RecursiveSolve $ RecursiveSolve -> ($ цель, [], 0); UNDEF $ RecursiveSolve; # Избегайте утечки памяти из кругового опорного возврата @results; } # Конец решить мою @results = Решите (4022, [34, 63, 83, 86, 88, 90, 95, 105, 107, 115, 120, 132, 140, 145, 146, 149, 154, 165, 167 , 173, 175, 197, 1768, 1776, 1781, 1782, 1807, 1815, 1820, 1853, 1866, 1868, 1882, 1888, 1891, 1895, 1909, 1911, 1924, 1942, 1946, 1975, 1983, 1988, 1997]); печать "@ $ _ \ п" для @results; Существует очевидное подмножество «а», сумма которых равна «б = 4022»: [389, 1071, 1248, 1314], однако выполнение кода (с уже установленным набором «в») ничего не печатает в командной строке, ни ничего в выходном файле. Опять же, это, скорее всего, проблема памяти, я просто не знаю, как работать вокруг него. ) Ничего не печатает в командной строке, ни что-либо в выходном файле. Опять же, это, скорее всего, проблема памяти, я просто не знаю, как работать вокруг него. ) Ничего не печатает в командной строке, ни что-либо в выходном файле. Опять же, это, скорее всего, проблема памяти, я просто не знаю, как работать вокруг него.
J. Linne

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