Ответы пользователя по тегу Perl
  • Нужна помощь для создания perl-скрипта отслеживания посылки по трекингу Почты России

    SLY_G
    @SLY_G Автор вопроса
    журналист, переводчик, программист, стартапщик
    Я это находил. Вообще не помогает понять, как работать с wsdl от Почты.
    Описывает, как общаются собственноручно сделанный сервер с клиентом.
    Как с любой новой технологией — сложно преодолеть пропасть между «в принципе, оно работает вот так» и «в данном конкретном случае надо делать вот это и это»
    Ответ написан
    Комментировать
  • Контроль неиспользуемых переменных в perl?

    SLY_G
    @SLY_G
    журналист, переводчик, программист, стартапщик
    use strict;
    use warnings;

    таким образом, нужно будет объявлять все переменные, и при этом perl выдаст предупреждение, когда переменная упомянута в коде только один раз — это будет означать, что она объявляется и не используется.

    Вообще, я в последнее время использую

    use common::sense;

    Макрос для хорошего набора директив.
    Ответ написан
    3 комментария
  • Python vs Perl

    SLY_G
    @SLY_G
    журналист, переводчик, программист, стартапщик
    В пользу perl говорят те факты, что изучив его, вы сможете делать многие вещи многими способами, сможете присоединиться к ордену монахов perl, научитесь регулярно витиевато выражаться, и девушки будут восторженно ахать, узнав что вы перловщик.
    Насчёт последнего я наврал.
    Ответ написан
    Комментировать
  • Хочу, чтобы в модуле виделись глобальные переменные скрипта, возможно ли?

    SLY_G
    @SLY_G
    журналист, переводчик, программист, стартапщик
    Ну, раз хеш с настройками надо передавать — его надо передавать.
    Если инициализатор подргужает модули согласно принятым командам, наверно это делается в одном месте скрипта и непонятно, в чём тут такая проблема Ж)
    Ну передаст он первым параметром эту ссылку на хэш…

    Если будет ООП, тогда это будет не передача параметра функции, а вызов конструктора с инициализацией этими параметрами, в общем форма поменяется.

    Как вариант, можно сохранять этот хеш в файле/базе данных, а в модулях загружать.
    Ответ написан
  • Perl. Помогите собрать портативную версию ExifTool

    SLY_G
    @SLY_G
    журналист, переводчик, программист, стартапщик
    www.indigostar.com/perl2exe.php

    par.perl.org/wiki/Main_Page

    Ещё вроде бы activestate Perl Dev Kit умеет собирать exe, но он платный.
    Ответ написан
    1 комментарий
  • Curses в Perl вылетают ошибки

    SLY_G
    @SLY_G
    журналист, переводчик, программист, стартапщик
    Можно просто попробовать

    perl -MCPAN -e 'install Curses::UI'
    Ответ написан
    1 комментарий
  • Template::Toolkit и utf-8 в шаблонах

    SLY_G
    @SLY_G Автор вопроса
    журналист, переводчик, программист, стартапщик
    Всем спасибо за помощь.

    Проблема решается единственной директивой:

    $dbh -> {'mysql_enable_utf8'} = 1;

    По-умолчанию стоит «0», поэтому, я подозреваю, TT конвертил данные от sql в utf самостоятельно, но как-то не в том месте, в результате какие-то данные оказывались дважды преобразованными в utf.
    Ответ написан
    Комментировать
  • Template::Toolkit и utf-8 в шаблонах

    SLY_G
    @SLY_G Автор вопроса
    журналист, переводчик, программист, стартапщик
    Удалось сделать небольшой скрипт, где возникает ошибка.

    файл со скриптом:

    use utf8;
    use strict;
    use vars qw($dbh $tt);
    use DBI;
    use Template;

    $dbh = DBI->connect(«DBI:mysql:database=mybase;host=localhost;port=3306», «login», «pass»);

    $tt = Template->new({
    INCLUDE_PATH => '.',
    DEFAULT_ENCODING => 'utf8',
    ENCODING => 'utf8',
    }) || die "$tt::ERROR\n";

    my $testvar = $dbh->selectrow_array(«SELECT 'Текст'»);

    $tt->process('template.htm', { 'testvar' => $testvar }) || die $tt->error(), "\n";

    Темплейт — в отдельном файле template.htm

    Если в темплейте оставить следующее:
    [% testvar %] and some ascii text.

    тогда отрабатывает ок, на выходе получаем «Текст and some ascii text.»

    Если в темплейт добавить русский текст, например
    [% testvar %] русский and some ascii text.

    то на выходе имеем кашу:
    Текст русский and some ascii text.

    При этом оба файла, и скрипт и темплейт, сохранены в utf-8 с заголовком BOM.
    Ответ написан
    Комментировать
  • Template::Toolkit и utf-8 в шаблонах

    SLY_G
    @SLY_G Автор вопроса
    журналист, переводчик, программист, стартапщик
    Похоже, проблема всё-таки не в TT.

    Такой вот скрипт:

    use utf8;
    use open OUT => ':utf8';
    use DBI;
    my $dbh = DBI->connect(«DBI:mysql:database=mybase;host=localhost;port=3306», «login», «pass»);
    #$dbh->do('SET CHARACTER SET utf8');

    open TST, '>utftest1.txt';
    binmode TST;
    print TST «русский»;

    $test = $dbh->selectrow_array(«SELECT 'русский'»);
    open TST, '>utftest2.txt';
    binmode TST;
    print TST $test;

    Файл utftest1.txt содержит 14 байт, и если его смотреть любым текстовым редактором, видно слово «русский».
    Файл utftest2.txt содержит 28 байт непонятно чего (двойная перекодировка?):

    0000000000: C3 91 C2 80 C3 91 C2 83 │ C3 91 C2 81 C3 91 C2 81
    0000000010: C3 90 C2 BA C3 90 C2 B8 │ C3 90 C2 B9

    Но при этом то, что выдаёт DBI, обрабатывается при помощи TT правильно в моих скриптах! А проблемы начинаются, если в скрипт или шаблон вставлять русские символы.
    Ответ написан
    Комментировать