[Perl] [연재] PSGI 입문 제1장 환경 변수의 일람을 낸다
본 기사의 대상
필요한 환경(또는 본 기사에서는 기재하지 않는 준비운동)
PSGI를 직접 쓰는 장점
RoR 혹은 MVC라든지 이해하지 않아도 자신의 perl의 지식만으로 쓸 수 있다
use CGI
! 헬로! 5 & use Text::Xslate
! use CGI::Carp
!오류는 자동으로 표시해준다! PSGI를 직접 쓰는 단점
”Hallo World!”
그냥 끝내라! 오늘의 주제: 환경 변수의 일람을 낸다.
여기까지 집필해 스태미나 끊어졌으므로 연재로 합니다. 오늘의 주제는 환경 변수의 취득과 그 일람의 출력입니다.
Myapp.pluse strict;
use warnings;
use Carp;
use Plack::App::Path::Router::PSGI;
use Path::Router;
use Plack::Request;
my $router = Path::Router->new;
$router->add_route( '/' => target => \&env );
# now create the Plack app
my $app = Plack::App::Path::Router::PSGI->new( router => $router );
$app->to_app();
# 以下routerで呼ばれる要素
sub env {
my $env = shift;
my @str;
while ( my ( $key, $value ) = each %$env ) {
push @str, "$key = $value" unless ref $value;
}
return response( $env,
join( "<br>\n", '<html><body><h1>環境変数一覧</h1>', sort(@str), '</body></html>')
);
}
# 以下サブルーチン
sub response {
my $env = shift;
my $body = shift || croak 'empty body!';
my %ARG = @_ if @_;
my $status = $ARG{'-status'} || 200;
croak "unvalid status: $status" if $status !~ /^\d{3}$/s;
my $mime = $ARG{'-MIME'} || 'text/html; charset=utf-8';
my $headers = $ARG{'-headers'} || {};
my $req = Plack::Request->new($env);
my $res = $req->new_response($status);
$res->content_type($mime);
$res->header( $headers );
$res->body($body);
$res->finalize;
}
__END__
로, $ plackup Myapp.pl -r
에서 k 6
어때! 쉽지! ? use Jcode;
도 use utf8;
도 use Encode;
도 필요 없습니다!
다음 장
7
홍보
이 기사는 자발적으로 유료 웹 서비스를 Perl로 쓰고 출시하는 것에 가까워서, 집착한 점이나 눈치채는 것을 공유하는 목적으로 쓰기 시작했습니다.
PSGI 입문 제2장 CGI::Session을 PSGI로 무리하게 사용 이 QR 코드를 스마트폰으로 읽고,
흥미를 가진 분은 까지 꼭 들러 주세요!
웹 API를 구현하는 것도 아니고, 단순히 웹 애플리케이션을 구축하고 싶을 뿐이거나, RoR을 만지지 않았다면 Mojolicious는 문턱 높지 않습니까? h tps : // q로 w응. 메
↩ h tp : // 쿠이타. 코 m/짱스케/있어 ms/43543590dc6d14639아83
↩ ぃ tp // 이 m/은기의 3000/이고 ms/1세트 5c607828637c6976
프로덕션 환경에서는 포트 80을 사용하기 위해 Apache/nginx를 멈추고 sudo
를 사용하거나 솔직하게 Apache/nginx를 역방향 프록시로 사용할 필요가 있지만 plackup Myapp.pl
그래서 ↩ 등과 브라우저에 치면 좋다. http://localhost:5000
use Plack::Request;
또는 use Plack::Response;
시로 ↩
CGI::Session에 의존하면 $session->expire(‘+1y’)
또는 그리기를 원하지만 자체 구현해야합니다.
-r
옵션은 스크립트 본문 및 ./lib
다음 변경 사항을 감지하고 자동으로 다시 시작하는 옵션.
Reference
이 문제에 관하여([Perl] [연재] PSGI 입문 제1장 환경 변수의 일람을 낸다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/worthmine/items/96f36332e620aef34001
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
use strict;
use warnings;
use Carp;
use Plack::App::Path::Router::PSGI;
use Path::Router;
use Plack::Request;
my $router = Path::Router->new;
$router->add_route( '/' => target => \&env );
# now create the Plack app
my $app = Plack::App::Path::Router::PSGI->new( router => $router );
$app->to_app();
# 以下routerで呼ばれる要素
sub env {
my $env = shift;
my @str;
while ( my ( $key, $value ) = each %$env ) {
push @str, "$key = $value" unless ref $value;
}
return response( $env,
join( "<br>\n", '<html><body><h1>環境変数一覧</h1>', sort(@str), '</body></html>')
);
}
# 以下サブルーチン
sub response {
my $env = shift;
my $body = shift || croak 'empty body!';
my %ARG = @_ if @_;
my $status = $ARG{'-status'} || 200;
croak "unvalid status: $status" if $status !~ /^\d{3}$/s;
my $mime = $ARG{'-MIME'} || 'text/html; charset=utf-8';
my $headers = $ARG{'-headers'} || {};
my $req = Plack::Request->new($env);
my $res = $req->new_response($status);
$res->content_type($mime);
$res->header( $headers );
$res->body($body);
$res->finalize;
}
__END__
이 기사는 자발적으로 유료 웹 서비스를 Perl로 쓰고 출시하는 것에 가까워서, 집착한 점이나 눈치채는 것을 공유하는 목적으로 쓰기 시작했습니다.
PSGI 입문 제2장 CGI::Session을 PSGI로 무리하게 사용 이 QR 코드를 스마트폰으로 읽고,
흥미를 가진 분은 까지 꼭 들러 주세요!
웹 API를 구현하는 것도 아니고, 단순히 웹 애플리케이션을 구축하고 싶을 뿐이거나, RoR을 만지지 않았다면 Mojolicious는 문턱 높지 않습니까? h tps : // q로 w응. 메
↩ h tp : // 쿠이타. 코 m/짱스케/있어 ms/43543590dc6d14639아83
↩ ぃ tp // 이 m/은기의 3000/이고 ms/1세트 5c607828637c6976
프로덕션 환경에서는 포트 80을 사용하기 위해 Apache/nginx를 멈추고
sudo
를 사용하거나 솔직하게 Apache/nginx를 역방향 프록시로 사용할 필요가 있지만 plackup Myapp.pl
그래서 ↩ 등과 브라우저에 치면 좋다. http://localhost:5000use Plack::Request;
또는 use Plack::Response;
시로 ↩CGI::Session에 의존하면
$session->expire(‘+1y’)
또는 그리기를 원하지만 자체 구현해야합니다.-r
옵션은 스크립트 본문 및 ./lib
다음 변경 사항을 감지하고 자동으로 다시 시작하는 옵션.Reference
이 문제에 관하여([Perl] [연재] PSGI 입문 제1장 환경 변수의 일람을 낸다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/worthmine/items/96f36332e620aef34001텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)