[О блоге] [наверх] [пред] [2023-07-07 10:42:07+03:00] [060e8ee05ad8f746baaf40b953483a397cfce9cb]
Темы: [perl][python]

Perl REPL

Решил постараться переезжать на Perl в качестве интерактивного
интерпретатора вместо Python. Один калькулятор
(d65882c3c5decb9e2216d7a8de98c1d422c2c42d) всё равно мне не заменял
время от времени запускаемый python, где и что-то в/из hex надо перевести,
UTF-8 (де)кодировать, части строчек как-то потасовать, и т.д., и т.д..
А почему я это делаю в столь мне ненавистном Python? Непорядок. Уж что
что, но для строчек Perl идеально должен подходить.

Для удобного интерактивного REPL-а многие предлагают запускать с -de1
(debug и выполнение программы "1"). В нём есть "x" команда для показа
всяких сложных структур. Но надо делать "p" чтобы вывести значение
переменной. А хочется, как в Python, чтобы последнее значение выводилось.

Нашёл рецепт с "say eval"-ом. Обернул в rlwrap, автоматически импортирую
Encode и Data::Dumper с добавлением алиаса "x":

    rlwrap --substitute-prompt "> " \
    perl -MEncode -MData::Dumper \
        -e '*x = \&Dumper; $_dummy = $x;' \
        -e '$Data::Dumper::Useqq = 1;' \
        -wnE 'say eval()//$@'

    [оставить комментарий]
    комментарий 0:
    From: kmeaw
    Date: 2023-07-09 09:02:01Z
    
    Предлагаю добавить ещё -Mbigint, чтобы получить возможность легко
    оперировать большими числами (как в Python) и "56->as_hex".
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2023-07-09 09:18:43Z
    
    *** kmeaw [2023-07-09 09:58]:
    >Предлагаю добавить ещё -Mbigint
    
    Ага, спасибо. Беру на заметку!
    
    комментарий 2:
    From: Sergey Matveev
    Date: 2023-07-09 11:44:41Z
    
    *** kmeaw [2023-07-09 09:58]:
    >Предлагаю добавить ещё -Mbigint
    
    Не, по умолчанию точно отпадает. Он насильно отбрасывает любую дробную
    часть чисел, сплошные integer-ы.
    
    комментарий 3:
    From: kmeaw
    Date: 2023-07-09 15:13:07Z
    
    > отбрасывает любую дробную часть чисел, сплошные integer-ы
    
    Если не нравится такое поведение, то есть ещё -Mbignum
    
    комментарий 4:
    From: Sergey Matveev
    Date: 2023-07-09 16:12:53Z
    
    *** kmeaw [2023-07-09 16:09]:
    >Если не нравится такое поведение, то есть ещё -Mbignum
    
    Большую крысу (bigrat) я заметил в SEE ALSO, а на bignum не обратил
    внимание. То что надо!