The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
CGI::Application::Plugin 完全な思いつき&パクリ。 package CGI::Application::Plugin; use 5.006; use strict; use attributes (); our $VERSION = 0.01; # Code stolen from Class::DBI::Plugin # Code stolen from Simon Cozens (Maypole) our %remember; sub MODIFY_CODE_ATTRIBUTES { $remember{ $_[1] } = $_[2]; () } sub FETCH_CODE_ATTRIBUTES { $remember{ $_[1] } } sub import { my $class = shift; my $caller = caller; no str
NAME CGI::Application::Plugin::ActionDispatch - Perl extension SYNOPSIS # In "WebApp.pm"... package WebApp; use base 'CGI::Application'; use CGI::Application::Plugin::ActionDispatch; sub do_stuff : Path('do/stuff') { ... } sub do_more_stuff : Regex('^/do/more/stuff\/?$') { ... } sub do_something_else : Regex('do/something/else/(\w+)/(\d+)$') { ... } DESCRIPTION CGI::Application::Plugin::ActionDisp
CGI::Application::Plugin::DBIC::Schema 思いつきで書いた SYNOPSISはこんな感じ # In your CGI::Application based web application module... use CGI::Application::Plugin::DBIC::Schema; sub setup{ my $self = shift; $self->schema_config( schema_class => 'My::DBIC::Schema', connect_info => [ "DBI:...", "username", "password", {AutoCommit => 1} ] ); } sub my_run_mode { my $self = shift; my $ret = $self->schema('Actor')-
取り合えずcore dumpの鯖でも動きました。 で、ソースですが公開してもいいかなと思ってます。(あまりたいしたソースじゃござんせんが) ですが、ひとつ問題があります。。。 アプリのいい名前が思い浮かばないw はじめあまり考えずに作り出したのでNekoMemoってモジュール名で作り始めました。 DBIx::ClassはNekoDBでUtil系はNekoUtilでw なんて安直なw ってことで名前大募集。コメントなりこのエントリのブクマなりで 適当に応募してください。ってか多分あつまらないだろうけどw サンプルで動かしているURLは http://nekokak.jf.land.to/nekomemo/memo.cgi です。 (追記) ちなみにCGI::Sessionはそのままで動きました。 鯖にもともとCGI::Sessionあったのに、無理やり用意したCGI::Sessionを 使っ
CGI::Application::Dispatch v2.00_01 CGI::ApplicationのMLでCGI::Application::Dispatchのv2.00_01がでてます。 svnで取得できます。 svn://svn.cromedome.net/CGI-Application-Dispatch 新しいdispatch tableがいい感じ。 今までは、PATH_INFOが /Module/Runmode で固定でしたが、これをいじる事ができます。 dispatchのカスタマイズをするにはCGI::Application::Dispatchを継承してdispatch_argsをoverrideします。 package MyApp::Dispatch; use base 'CGI::Application::Dispatch'; sub dispatch_args { r
CGI::Application用(デバッグ)サーバ CGI::Application用(デバッグの機能はまだない)サーバを作ってみた。 とりあえず動いた版ソース CGI::Application::HTTP ↑アップロードしていたファイルが古いものでした。修正しました(2005-12-17 16:37) 使い方は、 package MyApp; use strict; use warnings; use base qw(CGI::Application::HTTP); package main; MyApp->new()->run(3000); 最後の3000はポート番号。これを # perl server.pl You can connect to your server at http://example.com:3000 と出力されてPort 3000でCGI::Appが動きます。
CGI::AppでのDebugScreen CGI::AppでのDebugScreenがCPANにアップされました。 http://search.cpan.org/~nekokak/CGI-Application-Plugin-DebugScreen-0.01/ id:nekokakさんグッジョブです。 id:tokuhiromさんが指摘している たぶんこれは期待した動作をしないハズです。 他のライブラリが eval-block とか使ってるケースがあるので。 これのシンプルな例をあげると、 my $denominator = $q->param('denominator') || 0; my $ret = eval{10/$denominator} || 0; このコードで $denominatorや$q->param('denominator')が0の場合、当然2行目のeval blo
CGI::AppでのDebugScreen このエントリーは最初の投稿時と大きく書き換えました。 nekokakさんがつくられた「CGI::AppでのDebugScreen」はかなりハゲシクGJです。 ただ、prerunに引っ掛けるとその他のPluginで動かなくなるのがありそうなので、error_modeを使うinitにHookしてSIG{__DIE__}を差し込むというのはいかがですか? importとdebug_reportを書き換えた。 sub import { my $caller = caller; $caller->add_callback( 'init', sub{ my $self = shift; $caller::SIG{__DIE__} = sub{ $self->debug_report(@_); die @_; }; }); no strict 'refs';
CGI::ApplicationでもCatalyst風にStash CGI::AppでTropyを作る過程で思いついたプラグイン。 CGI::AppでもCatalystでも同じ感じでアプリが組めたら便利かなと思う。 package CGI::Application::Plugin::Stash; use strict; use warnings; use vars qw($VERSION @EXPORT); require Exporter; @EXPORT = qw(stash); $VERSION = '0.01'; sub import { goto &Exporter::import } sub stash{ my $self = shift; # First use? Create new __PARAMS! $self->{__PARAMS} = {} unless (exis
CGI::ApplicationでTropy Tropyが面白い。しかも勉強用にちょうどいいサイズ。 クローンがいくつか既にあるけど、ハテナオヤさんがCatalystでつくったので、CGI::Applicationでもやってみた。 http://nomadscafe.jp/caropy/caropy.cgi ネーミングセンスないけど、CGI::Application::TropyなのでCaropyとしてみた。 ソースはこちらから見れます。 依存するモジュールは以下です。 CGI::Application::Plugin::TT CGI::Application::Plugin::FormValidator::Simple CGI::Application::Plugin::Redirect Class::DBI::Sweet Primaryキーの生成にはData::UUIDを使用してます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く