<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>