Changeset 23391
- Timestamp:
- 11/12/08 19:37:17 (5 years ago)
- Location:
- lang/perl/MENTA/trunk
- Files:
-
- 3 modified
-
app/index.cgi (modified) (2 diffs)
-
lib/MENTA.pm (modified) (6 diffs)
-
src/menta.pl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/MENTA/trunk/app/index.cgi
r23388 r23391 23 23 }); 24 24 25 run_menta(); 26 25 27 # あなたのプログラム 26 28 sub do_index { … … 38 40 } 39 41 40 # おまじない41 MENTA->run;42 -
lang/perl/MENTA/trunk/lib/MENTA.pm
r23388 r23391 3 3 use warnings; 4 4 use utf8; 5 sub DEFAULT_MAX_POST_BODY () { 1_024_000 }6 5 7 6 our $FINISHED; … … 13 12 warnings->import; 14 13 utf8->import; 15 16 MENTA->inject();17 14 } 18 15 19 sub inject { 20 no strict 'refs'; 21 for my $meth (qw/render redirect finalize config/) { 22 *{"main::$meth"} = *{"MENTA::$meth"}; 23 } 24 } 16 package main; 17 18 sub DEFAULT_MAX_POST_BODY () { 1_024_000 } 25 19 26 20 sub config { … … 28 22 my $config = @_ == 1 ? $_[0] : {@_}; 29 23 $config->{menta}->{max_post_body} ||= DEFAULT_MAX_POST_BODY; 30 $ CONFIG = $config;24 $MENTA::CONFIG = $config; 31 25 } 32 26 33 $ CONFIG27 $MENTA::CONFIG; 34 28 } 35 29 36 sub run {30 sub run_menta { 37 31 eval { 38 32 my $config = config(); … … 52 46 $input = $ENV{QUERY_STRING}; 53 47 } 54 local $ REQ = {};55 local $ FINISHED = 0;48 local $MENTA::REQ = {}; 49 local $MENTA::FINISHED = 0; 56 50 57 51 for ( split /&/, $input) { … … 61 55 $val =~ s/%([a-fA-F0-9]{2})/pack("H2", $1)/eg; 62 56 } 63 $ REQ->{$key} = $val;57 $MENTA::REQ->{$key} = $val; 64 58 } 65 59 … … 75 69 } 76 70 } else { 77 my $mode = $ REQ->{mode} || 'index';71 my $mode = $MENTA::REQ->{mode} || 'index'; 78 72 my $meth = "do_$mode"; 79 73 if (my $code = main->can($meth)) { 80 $code->($ REQ);81 unless ($ FINISHED) {74 $code->($MENTA::REQ); 75 unless ($MENTA::FINISHED) { 82 76 die "なにも出力してません"; 83 77 } -
lang/perl/MENTA/trunk/src/menta.pl
r23388 r23391 6 6 ### INCLUDE 'lib/MENTA.pm' ### 7 7 8 MENTA->inject;9 10 8 ### INCLUDE 'app/index.cgi' ### 11 9
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)