Learn Web.Development of Perl

######Overview of Web.Development related modules.#Note that, below codes can not be executed just for overview intention.######!/usr/bin/perl#CGI::FormBuilder::Source::Perl#Dancer, A lightweight yet powerful web application framework#HTML::FormHandler, HTML forms using moose#MIME::Types, Definition of MIME types#Mojolicious, Real-time web framework#Plack, Flexible superglue between web servers and perl web frameworks or code#Task::Catalyst, The elegant MVC web application framework.#Template, Template processing system#XML::Atom, atom feed and API implementation#XML:RSS, Creates and updates RSS files######Dancer#If you don't want to write CGI scripts by hand, and find Catalyst too big or #cumbersome for your project, Dancer is what you need.#####use Dancer;get '/hello/:name' => sub { return "why, hello here" . param('name');};dance;######HTML::Formhandler######arributes and methods#-creating a form#-processing the form#-getting data out#-accessing and setting up fields#-constraints and validation#-accessing errors#-clear form state#-miscellaneous atrributes#-Flagsuse HTML::FormHandler; #or a custom form: use MyApp::Form::User;my $form = HTML::FormHandler->new( … );$form->process( params => $params );my $rendered_form = $form->render;if ($form->validated) { #perform validated form actions}else { #perform non-validated actions #or, return a result $result->render;}#a dynamic formmy $form = HTML::Formhandler->new( name => 'user_form', field_list => ['username' => {type => 'Text',apply => [ { check => qr/^[0-9a-z]*\z/,message => 'contains invalid characters' } ],},'select_bar' => {type => 'select',options => \@select_options,multiple => 1,size => 4,}, ],);######MIME::Types#####use MIME::Types;my $mt = MIME::Types->new(…); # MIMI::TYpes objectmy $type = $mt->type('text/plain'); # MIMI::Type objectmy $type = $mt->mimeTypeOf('gif');my $type = $mt->mimeTypeOf('picture.jpg');my $type = $mt->httpAccept('text/html, application/json;q=0.1');######Mojolicious, real-time web framwork.######hooks#atrributes#methods#autoload#bundled files# Applicationpackage MyApp;use Mojo::Base 'Mojolicious';# Routesub startup { my $self = shift; $self->routes->get('/hello')->to('fool#hello');}# Controllerpackage MyApp::Controller::Foo;use Mojo::Base 'Mojolicious::Controller';# Actionsub hello { my $self = shift; $self->render(text => 'hello world!');}##hooks#after_build_tx$app->hook(after_build_tx =>sub { my ($tx, $app) = @_; …});#before_dispatch$app->hook( before_dispatch => { my $c = shift; …});#after_static$app->hook(after_static => sub { my $c = shift; …});#before_routes$app->hook(before_routes => sub { my $c = shift; …});#around_action#before_render#after_render#after_dispatch#around_dispatch######Plack, perl superglue for web frameworks and web servers(PSGI toolkit)######modules and utilities#plack::handler#plack::loader#plack::util#psgi files#plackup, plack::runner#plack::middleware#plack::request, plack::response#plack::test#plack:test::suite

>>More of Perl Web.Development

Mars

,人,总是很难改正自己的缺点,

Learn Web.Development of Perl

相关文章:

你感兴趣的文章:

标签云: