perl in da shell

20
Perl in da shell by tonyo Saint Perl 2012

Upload: anton-ovchinnikov

Post on 23-Jun-2015

344 views

Category:

Technology


3 download

DESCRIPTION

The presentation from Saint Perl 4 (http://event.yapcrussia.org/saintperl4/) workshop, held on 22 December 2012.

TRANSCRIPT

Page 1: Perl in da shell

Perl in da shell

by tonyo

Saint Perl 2012

Page 2: Perl in da shell

Shell? What's that?

Различаем:

- интерактивные оболочки(irb, python, ghci ...)

- командные оболочки(bash, zsh, tcsh ...)

хотя и не совсем научно :-/

Page 3: Perl in da shell

What about Perl?

- интерактивные оболочкиperlconsoleDevel::REPL...

- командные оболочкиZoidbergpsh

Page 4: Perl in da shell

Interactive shells

Page 5: Perl in da shell

1. Simple one

$ perl -e 'eval while <>'

+ Дешево * нет зависимостей* расширяемая (~ дописываемая)

- Сердито* нет истории* нет автодополнения* нет "многостроковости"* ...

Page 6: Perl in da shell

2. Debuggish one

$ perl -de1

+ поддержка Readline+ подгрузка модулей

- не по назначению- сложно настроить под себя

Page 7: Perl in da shell

3. perlconsolehttps://metacpan.org/module/SUKRIA/perlconsole-0.4/perlconsole

Page 8: Perl in da shell

3. perlconsolehttps://metacpan.org/module/SUKRIA/perlconsole-0.4/perlconsole

+ конфиг-файл (.perlconsolerc)+ возможность выбора output-формата(:set output=scalar / dumper / yaml )

- нельзя писать multi-line код- проект не развивается

Page 9: Perl in da shell

4. Devel::REPLhttps://metacpan.org/module/Devel::REPL

Page 10: Perl in da shell

4. Devel::REPLhttps://metacpan.org/module/Devel::REPL

+ есть multi-line+ много плагинов

* цветной вывод* история* ...

+ развивается (последний апдейт - 01.11.12)

- много зависимостей

Page 11: Perl in da shell

4. Devel::REPLhttps://metacpan.org/module/Devel::REPL

Альпаки одобряют!

Page 12: Perl in da shell

Command shells

Page 13: Perl in da shell

I. Zoidberghttps://metacpan.org/module/Zoidberg

Page 14: Perl in da shell

I. Zoidberghttps://metacpan.org/module/Zoidberg

+ возможности для конфигурации (rc-файлы, плагины)+ обертки для команд из $PATH

zoid$ mv($_ => lc($_)) for grep /[A-Z]/, <*>

- проблемы с поддержкой Unicode- разработка заброшена

Page 15: Perl in da shell

II. psh (Perl SHell)https://github.com/gnp/psh

Page 16: Perl in da shell

II. psh (Perl SHell)https://github.com/gnp/psh

+ документация+ вспомогательные конструкции (manifest filters)+ реализовано много built-in команд (source, alias, jobs...)

- нельзя смешивать Perl-конструкции и внешние команды- проект не обновляется

Page 17: Perl in da shell

II. psh (Perl SHell)https://github.com/gnp/psh

Manifest filters

1. Quick (построковая обработка)$ ls | { print ++$i, ": $_"; }q

2. Grep (фильтр)$ ps -ef | {$_[1] > 20000}g

3. Substitution (замена)$ ls -al | s/tonyo/alpaca/

Page 18: Perl in da shell

II. psh (Perl SHell)https://github.com/gnp/psh

Альпаки одобряют!

Page 19: Perl in da shell

Outro

- Выбор есть

- Нужно допиливать* конфигурацию* код

Page 20: Perl in da shell

Thx!

Альпак опрашивал:

tonyo (aka Антон Овчинников)[email protected]

http://peterpen-ctf.nethttp://vk.com/peterpenctf