[Moscow.pm] Строгая типизация в Perl

Nikolay Mishin mi на ya.ru
Пн Авг 27 00:39:05 PDT 2012


Александр,  как я понял,
типизация достигается использованием 
1)
use Moose; # automatically turns on strict and warnings
 
has 'x' => (is => 'rw', isa => 'Int');
has 'y' => (is => 'rw', isa => 'Int');
 ну или
2)
use Data::Type qw(:all);
 
use Data::Type::Guard;
 
  my $dtg = Data::Type::Guard->new
  (
    tests =>
    {
      email =>       STD::EMAIL( 1 ),
      firstname =>   STD::WORD,
      social_id =>   [ STD::NUM, STD::VARCHAR( 10 ) ],
      contacts =>    sub { my %args = @_; exists $args{lucy} },
    }
  );
 
  cgi_error( "You made a mistake in one of the form fields. Please review your input." ) unless $dtg->inspect( $cgi->Params ); 
(https://metacpan.org/module/Data::Type::Docs::Howto)
3) или ручками проверять
use Regexp::Common 'RE_num_ALL';
sub show_human_time {
    my $seconds = shift;
    die 'Usage: show_human_time($seconds), $seconds must be integer'
      if ( $seconds !~ $RE{num}{int} );
...
} (https://gist.github.com/1571636)

27.08.2012, 09:32, "Alexandr Alexeev" <afiskon на gmail.com>:
> Я смутно припоминаю, что в Perl есть способ или даже несколько
> способов организовать строгую типизацию. Вопрос - кто-нибудь сие
> практикует и если да, то какими модулями или иными средствами
> пользуется?
>
> --
> С уважением, Александр
> Личный блог: http://eax.me/
> Мой форум: http://it-talk.org/
> Мой Twitter: http://twitter.com/afiskon
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

--
Nikolay Mishin


Подробная информация о списке рассылки Moscow-pm