Ответы пользователя по тегу Perl
  • Почему этот perl скрипт не меняет байты в файле?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Если взять кусочек комбинации, то все работает.

    Думаю дело в том, как работают такие конструкции.
    Считывается строка, в ней ищется искомое.
    А у тебя в строке я вижу встречается x0A
    То есть скорее всего твоя последовательность байт "разбита" на несколько строк, и для перла это критично.
    Если в комбинации нет 00, То можно так: -0pe

    sudo perl -0pi -e 's/SEARCH/REPLACE/g' filename
    Ответ написан
    2 комментария
  • Почему в perl нет двумерных массивов?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вы немного путаете массив массивов и многомерные массивы.

    А массив массивов, это когда значение конкретного элемента это тоже целый массив. И в этом случае обратиться к нему проблематично. Но можно через ссылку - сперва извлекаем ссылку потом обращаемся к вложенному массиву.

    А просто многомерные массивы в перл естественно есть.
    Двумерные массивы это просто массив, в котором для обращения к элементу нужно указать два индекса - array(x,y).
    Или вот трехмерный массив с тремя индексами array(x,y,z)
    Ответ написан
    Комментировать
  • Как запустить код на C из perl?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Скрипта на С не существует. С это компилируемый язык, его нужно скомпилировтаь в исполняемый файл. Либо у вас скрипт не на С.

    И дело не в перл. Перл у вас скорее всего просто запускает внешний файл.
    Windows запускает ассоциированную программу - у вас visual studio.
    Видимо нужно найти и поставить интерпретатор С
    Ответ написан
    4 комментария
  • Perl Win32::GUI нужен пример?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Открываете файл при например при помощи search.cpan.org/~jenda/Win32-FileOp-0.16.02/FileOp.pm
    Определяете его размер, делите на x кусочков вашего прогресс бара и получаете размер SIZE для вашего прогресс бара
    Начинаете считывать построчно, определяя длину каждой считанной строки и выводя ее в поле при помощи perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?do...
    Как считаете SIZE байт, дорисовываете палочку в прогресс баре, и так пока все не считается.
    Ответ написан
    Комментировать
  • Что вы скажете про язык Perl в разработке игр?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Какую-нить простенькую веб-браузерку написать на перле можно легко и быстро.
    Но Perl не был рассчитан на разработку игр, в основном на парсинг текстовых данных - в этом он до сих пор очень крут.
    Писать на перле игру - не стоит.
    Ответ написан
    Комментировать
  • Задания для практики Perl (для начинающих писать скрипты)?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Суть скриптовых задач заключается в том, что вы должны сами знать какой результат вы хотите получить.

    Это позволяет вам не отвлекаться на второстепенные задачи, типа "а надо ли, чтобы тут были запятые в ответе, или в каком столбце писать сумму а в каком имя", а делать скрипт, который реализует необходимый именно ВАМ результат.
    Потому что если нужно что-то более масштабное, то в этом случае, лучше не perl.

    Perl идеально подходит для парсинга текста. В идеале лог-файлов или каких-то отчетов.
    Что у вас есть из таких вещей под рукой?

    1) Настройте бэкап важных вам данных с сохранением удобных логов, в которых вы будете видеть время потраченное на бэкап, место которое он занимает.

    2) Вам нравится какая-то игрушка, у которой есть сайт?
    Отпарсите его на перле, попробуйте извлечь из него полезные данные, если периодически парсить.

    3) Напишите скрипт на перле, который парсит тостер, считывает вопрос, название вопроса, количество ответов в нем и выводит в html-файл в виде таблички

    4) Настройте скрипт на пинг удаленного сервера, парсите ответ перлом, чтобы сохранить в файл необходимую информацию, например timestamp, ответ (успешный/нет),время отклика.

    5) Поднимите веб-сервер, настройте perl как cgi-скрипт, который берет лог файл например из пункта 4 , и выводит диаграмму какой-либо перловой графической библиотекой для построения диаграмм (можно погуглить как создать image из массива данных в перл)
    Ответ написан
    Комментировать
  • Порекомендуйте, на чём сделать backend?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    > хранить на сервере базы данных, но тогда каждый запуск скрипта означает ещё и обращение к серверу баз данных
    можно использовать memcached
    Ответ написан
    1 комментарий
  • Есть ли смысл изучать perl?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Изучить перл до джуниора - я бы рекомендовал всем, кто работает со скриптовыми языками - на перле очень удобно парсить данные, а сам по себе он весьма простой, поэтому много времени не займет.

    Иногда простенькие вещи проще написать на перл и запустить, чем писать их на питоне/php. Но собственно вопрос углубляться или нет, можно решить позже, когда освоите перл на минимальном уровне, написав парочку парсеров/утилит.

    То есть учить перл профессионально лучше уже на практике, если есть работа связанная с перлом.
    Ответ написан
    Комментировать
  • Перенос с Perl на C#, как вникнуть в perl по быстрому?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В перл программе по ссылке нет ничего кроме работы с массивами, и парочки функций типа srand.
    Программа написана весьма просто - обычные математика и функции.

    Учить перл не обязательно, просто перерисуйте алгоритм в более понятном вам виде и напишите с нуля.
    Ответ написан
  • Кто может объяснить что делает эта часть кода?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Тут не сложность кода, тут просто математические расчеты, какой-то порядок цифр рассчитывают.
    $first[$i] = $first[$i-1]*$f0/$i;

    На вход подается четыре параметра, возвращает массив данных.
    Ответ написан
  • Почему команда perl system() возвращает неверное значение?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    попробуйте
    top -b -n 1
    или
    top -n 1

    top по умолчанию это же интерактивная команда, она не вернет ничего, пока Ctrl-C не нажать
    Ответ написан
    Комментировать
  • Как с помощью SED заменить строку на несколько строк?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    А чем не устраивает перенос строки с \n?
    sed s/123456/Hello\nWorld/ file.txt
    или я неверно понял задачу?

    Несколько строк заменить вряд ли выйдет, sed считывает данные построчно, поэтому там можно делать сложнее, но может подойдет что-то вроде такого:

    sed -i -r "2,5s/.*/# deleted line/g" file.txt
    Очистит строки со 2 по 5.

    sed -i -r "/text1/,/text2/s/.*/# deleted line/g" file.txt
    очистит строки между text1 и text2 включительно (все совпадения)

    sed -i -r "/text1/,+2s/.*/# deleted line/g" file.txt
    очистит строку где встретился text1 и две следующие
    Ответ написан
    5 комментариев
  • Как писать в лог вывод perl скрипта запущенного в командной строке Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Перенаправление в файл вполне должно работать так, как вы указали.
    С другой стороны можете привести кусок кода из perl скрипта, в котором происходит вывод. Может скрипт изначально выводит не на stdout?
    Ответ написан
    1 комментарий
  • Как запускать обработку событий по времени?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вполне нормальное решение.

    Если не хотите писать свой демон вместо cron, то реализация вполне нормальная.
    Ну еще можете сразу из таблицы непосредственно в крон переносить таски. Можно даже скриптом.
    Ответ написан
    Комментировать
  • Как построчно считать файл на русском в perl?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ответ написан
    Комментировать
  • Как запустить PowerShell команды из Perl скрипта?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    exec('powershell команда');

    Но вообще, в вашем случае я бы предложил скачивать файл средствами перла, это же нативнее и проще.
    Ответ написан
    Комментировать
  • Где сейчас используется Perl?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Perl отличнейше живет везде, где нужно быстро отпарсить какой-либо текст.
    Perl отлично живет везде, где нужно быстро обработать какой-то массив непонятных данных, и возможно вывести его на экран, в файл, в график на сайт. Часто именно на perl пишут cgi-скрипты.

    Perl отлично дружит с системными администраторами, потому что позволяет быстро и удобно парсить данные, логи (для чего собственно и предназначался), использовать регулярки и выполнять другие команды. И для этого не нужно ООП, это системные скрипты - perl и какой-нить bash отлично дополняют друг друга.

    Для системного администратора - perl один из самых удобных языков
    Для системного интегратора, уже есть питон, и тут perl отстает.

    на Perl могут быть и были написаны многие приложения, включая ПО, обеспечивающее работу атомных станций, поскольку perl надежен - из-за своей простоты и проверенности, perl очень надежный язык.

    Perl идет во всех дистрибутивах Linux, и большая часть скриптов работает с тем perl, который из коробки. Затем добавляются библиотеки для работы с БД и с веб. Иногда еще GDI для генерации графиков.
    Ответ написан
    Комментировать
  • Здравствуйте! Есть у вас пожалуйста какой нибудь перл- или пайтон-скрипт который смог бы генерировать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    for ($page=1; $page <= $ARGV[1]; $page++) { print "${ARGV[0]}$page\n"; }

    запускать
    myscript.pl <кол-во страниц>
    Ответ написан