Obrigado Eden, pela resposta!<br><br>E que de onde eu vim (PHP), as coisas são diferentes.<br>Então vou resumir minha pergunta!<br><br>É possível usando HTTP::Server:Simple::CGI criar um esquema de routers dinamicos?<br>Se nao, onde consigo fazer isso?<br>

<br>Mas pelo que to vendo, terei que esquecer meus conceitos de PHP e recomeçar do zero!<br><br>[]'s<br><br><div class="gmail_quote">Em 20 de outubro de 2011 00:24, Eden Cardim <span dir="ltr"><<a href="mailto:edencardim@gmail.com">edencardim@gmail.com</a>></span> escreveu:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">>>>>> "Rafael" == Rafael Silveira <<a href="mailto:design.silveira@gmail.com">design.silveira@gmail.com</a>> writes:<br>


<br>
    Rafael> Galera, eis me aqui de novo!<br>
    Rafael> Como estão!<br>
<br>
    Rafael> Pode parecer um tanto estranho eu querer usar<br>
    Rafael> HTTP::Server::Simple::CGI e Xslate; Criar um ambiente MVC do<br>
    Rafael> zero; Quando se tem Catalyst ou Dancer.  Porem é aquilo, eu<br>
    Rafael> estou querendo aprender perl para web, e o melhor jeito de<br>
    Rafael> se fazer isso (no meu ponto de vista), é criar um sistema<br>
    Rafael> MVC utilizando essas libs.<br>
<br>
    Rafael> Queria saber se é possível usar o modulo<br>
    Rafael> HTTP::Server::Simple::CGI, para carregar classes<br>
    Rafael> (controllers) de forma mvc.<br>
<br>
Não, esse módulo é uma implementação server-side de HTTP, mas você pode<br>
integrar ele com outros módulos que façam isso.<br>
<br>
    Rafael> Por exemplo:<br>
<br>
    Rafael> <a href="http://localhost:3000/Postagens/listagem" target="_blank">http://localhost:3000/Postagens/listagem</a><br>
<br>
    Rafael> A url acima, faz um request para meu App usando<br>
    Rafael> HTTP::Server::Simple::CGI que está escutando na porta 3000.<br>
    Rafael> Ele le a uri (Postagens/listagem), parseia ela, e define que<br>
    Rafael> Postagens é meu módulo (controller) e listagem é o método do<br>
    Rafael> meu módulo.<br>
<br>
Só toma cuidado com esse tipo de coisa, que é bem fácil você abrir uma<br>
falha de segurança. A depender de como você implementou, sua app pode<br>
estar aberta à execução de subrotinas arbitrárias.<br>
<br>
    Rafael> Resumindo, faço isso dinamicamente, sem definir rotas.<br>
<br>
    Rafael> Caso passe só Postagens na uri, ele chama o metodo default<br>
    Rafael> (index por exemplo).<br>
<br>
    Rafael> Gostaria tbm de usar moose para estruturar meus módulos (controllers).<br>
<br>
    Rafael> Mas não sei nem por onde começar.<br>
<br>
    Rafael> Talvez uma estrutura tipo.<br>
<br>
    Rafael> /root<br>
    Rafael>      /lib<br>
    Rafael>      /config<br>
    Rafael>            defaults.yml<br>
    Rafael>            database.yml<br>
    Rafael>      /controllers<br>
    Rafael>          Postagens.pm<br>
    Rafael>      /views<br>
    Rafael>          Default.tt<br>
    Rafael>      /models (nao to qrendo ver isso no momento)<br>
    Rafael>      <a href="http://app.pl" target="_blank">app.pl</a><br>
<br>
    Rafael> Sugestões?<br>
<br>
Recomendo você usar o padrão de módulos do cpan pra estrutura de<br>
arquivos da sua app. Assim qualquer desenvolvedor perl minimamente<br>
decente vai saber onde olhar dentro da árvore de source. É algo da<br>
forma:<br>
<br>
        lib/     -- módulos<br>
        t/       -- testes<br>
        script/  -- executáveis<br>
        Makefile.PL ou dist.ini ou Build.PL -- listagem/instalação de dependências<br>
        MANIFEST -- listagem de todos os arquivos distribuíveis<br>
        Changes  -- log de mudanças entre releases<br>
        README   -- primeiro arquivo que alguém vai ler<br>
<br>
É bem recomendável que você use o Dist::Zilla porque ele facilita uma<br>
porção de coisas pra você na hora de estruturar isso.<br>
<br>
    Rafael> Realmente eu gostaria de fazer dessa forma, para depois<br>
    Rafael> aprender a usar um Catalyst, Dancer.<br>
<br>
Eu acho perda de tempo. Vai ser mais rápido você aprender a estruturar<br>
uma aplicação depois de você aprender a usar algo como o Catalyst e<br>
depois olhar pro source pra ver como é implementado. Digo Catalyst<br>
especificamente porque o Dancer é bem ruinzinho em termos da estrutura<br>
interna e qualidade do código em geral. Outro módulo que vale a pena uma<br>
olhada na doc e no source é o Plack.<br>
<font color="#888888"><br>
--<br>
Eden Cardim<br>
Software Engineer<br>
<a href="http://bit.ly/edencardim" target="_blank">http://bit.ly/edencardim</a><br>
<a href="http://twitter.com/#%21/edenc" target="_blank">http://twitter.com/#!/edenc</a><br>
<a href="tel:%2B55%2073%209986-3963" value="+557399863963">+55 73 9986-3963</a><br>
=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</font></blockquote></div><br>