[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