perl5i — современные улучшения perl5 в одном флаконе

Программа на перле сейчас начинается с простыни подгрузки модулей, причём их уже дессятки!!! (мы все умрём!!!). Возникает вопрос что делать. Ответ — использовать один из нескольких модулей, делающих всё водной строке. Остановимся на самом, наверно, навороченнном — perl5i.

perl5i — практически неизвестный модуль (если вообще модуль), переделывающий перл в новый язык. Чем-то он напоминает по характеру Underline.js , но опирается на мощь самого перла, и опирается на множество уже существующих модулей — улучшателей, таких как Modern::Perl, DateTime, Try::Tiny и так далее.

Другие Модули — улучшатели

Modern::Perl

uni::perl

common::sense

Кроме того, Perl5i включает множество вроде бы не очень нужных вещей, типа

    $string->trim();
    "12.34"->is_number;
    "Foo/Bar.pm"->path2module;  # "Foo::Bar"
    "Foo::Bar"->module2path;  # "Foo/Bar.pm"

Несколько цитат из FAQ:

How do I get information about the current date?

localtime(), gmtime() and time() all return DateTime objects in scalar context.

No more mucking around with $year += 1900. It’s simply:

    my $now = localtime;
    my $year = $now->year;

Or even:

my $year = localtime->year;

The name of the current month can be gotten with:

    my $month_name = localtime->month_name;

You have the full range of DateTime features available.

Subroutine and Method Signatures

perl5i makes it easier to declare what parameters a subroutine takes.

    func hello($place) {
        say "Hello, $place!\n";
    }

    method get($key) {
        return $self->{$key};
    }

    method new($class: %args) {
        return bless \%args, $class;
    }

Leave a Reply