<html>
<body>
<div style='font: 12pt sans-serif;'>
<div>
<br />
</div>
<div>
<div>
<div>MVC Catalyst вариант Catalyst::DispatchType::Chained</div>
<div>этого я не видел, в других некоторый фреймфорках, например, Symfony php - это выглядит очень тупиково....</div>
<div>sub blog : Chained PathPart('blog') CaptureArgs(0) { }
<br /> sub user : Chained('blog') PathPart('user') CaptureArgs(1) {
<br /> my ( $self, $c, $id_un ) = @_;
<br /> $c->stash->{ message } = "Hello 2";
<br /> $c->stash->{ arg_sum }->[0] = $id_un;
<br /> }
<br /> sub view : Chained('user') PathPart('view') CaptureArgs(1) {
<br /> my ( $self, $c, $id ) = @_;
<br /> $c->stash->{ message } .= "World!";
<br /> $c->stash->{ arg_sum }->[1] = $id;
<br /> }
<br /> sub view_page_off : Chained('view') PathPart('') Args(1) {
<br /> my ( $self, $c, $page ) = @_;
<br />
<br /> $c->stash->{ arg_sum }->[2] = $page;
<br />
<br /> $c->forward( 'view_blog_message', $c->stash->{ arg_sum } );
<br />
<br /> }
<br />
<br />
<br /> sub view_off : Chained('view') PathPart('') Args(0) {
<br /> my ( $self, $c ) = @_;
<br /> $c->forward( 'view_blog_message', [ $c->stash->{ arg_sum } );
<br />
<br /> }
<br /> sub view_page_user : Chained('user') PathPart('') Args(1) {
<br /> my ( $self, $c, $page ) = @_;
<br /> $c->stash->{ arg_sum }->[1] = $page;
<br />
<br /># print '666';
<br /> $c->forward( 'view_blog', $c->stash->{ arg_sum } );
<br />
<br /> }
<br />
<br /> sub view_user : Chained('user') PathPart('') Args(0) {
<br /> my ( $self, $c ) = @_;
<br /> $c->forward( 'view_blog', $c->stash->{ arg_sum } );
<br />
<br />
<br /> }
<br />
<br />
<br /></div>
<div>===============================</div>
<div>| Path Spec | Private |
<br />+-------------------------------------+--------------------------------------+
<br />| /blog/user/*/view/* | /blog/blog (0) |
<br />| | -> /blog/user (1) |
<br />| | -> /blog/view (1) |
<br />| | => /blog/view_off |
<br />| /blog/user/*/view/*/* | /blog/blog (0) |
<br />| | -> /blog/user (1) |
<br />| | -> /blog/view (1) |
<br />| | => /blog/view_page_off |
<br />| /blog/user/*/* | /blog/blog (0) |
<br />| | -> /blog/user (1) |
<br />| | => /blog/view_page_user |
<br />| /blog/user/* | /blog/blog (0) |
<br />| | -> /blog/user (1) |
<br />| | => /blog/view_user |
<br />'-------------------------------------+--------------------------------------'
<br />
<br />
<br /></div>
<br />
</div>
<br />
<br />--- Исходное сообщение ---
<br />От кого: Евгений Карпенко <notformat@gmail.com>
<br />Кому: kiev-perl-users-group@googlegroups.com
<br />Дата: 8 августа, 23:08:33
<br />Тема: Re: Re: Re: Re[4]: Популяризация
<br />
<br />>
<br />> Более интересный пример: IP-адреса, Perl5
<br />> файл IPType.pm
<br />>
<br />> package IPType;
<br />> use Regexp::Common 2.105;
<br />> use MooseX::Types::Moose qw( Str );
<br />> use MooseX::Types -declare => [ qw(IP) ];
<br />>
<br />> subtype IP, as Str, where {
<br />> $_ =~ /\A $RE{net}{IPv4} \z/msx
<br />> }, message {
<br />> "'$_' is not a valid IP";
<br />> };
<br />>
<br />> файл typed.pl
<br />>
<br />> use IPType qw/IP/;
<br />> use MooseX::Lexical::Types qw/IP/;
<br />>
<br />> my IP $foo; # declare typed variable
<br />> $foo = '192.168.1.1'; # works
<br />> $foo = 'bar'; # fails
<br />
<br />import java.util.regex.*;
<br />
<br />public class TestRegexp {
<br />public static final Pattern pattern = Pattern.compile
<br />("[a-zA-Z]{1}[a-zA-Z\d\u002E\u005F]+@([a-zA-Z]+\u002E){1,2}((net)|(com)|(org))");
<br />
<br />public static void doMatch(String word) {
<br />String output = "Validation for " + word;
<br />Matcher matcher = pattern.matcher(word);
<br />if (matcher.matches())
<br />output += " passed."
<br />else
<br />output += " not passed."
<br />System.out.println(output);
<br />}
<br />
<br />public static void main(String[] args) {
<br />doMatch("c0nst@money.simply.net");
<br />doMatch("somebody@dev.com.ua");
<br />doMatch("Name.Sur_name@gmail.com");
<br />doMatch("useR33@somewhere.in.the.net");
<br />}
<br />
<br />}
<br />Не в тему АЙПИ а в тему регулярных выражений.
<br />
<br />
<br /></div>
</div></body>
</html>