SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Niigata.pm tech talk #1


  モダンかもしれない←
Perlウェブアプリケーション
       開発入門
自己紹介

・Hayato Imai
・@hayajo
・Perl, PHP, Java, etc.
・社内のなんでも屋さん
ボクとPerl
・OJTで出会う
 「すぐわかる Perl」
 (深沢千尋:著 技術評論社)



・Perl -> Java -> PHP

・2009年ごろから返り咲き
モダンかもしれない←
Perlウェブアプリケーション
       開発入門


    環境編
perlbrew
             http://perlbrew.pl/


・複数のバージョンのperlをインストールして切り替え
・システムperlの環境をよごさずにモジュール入れ放題
・root権限いらず

              導入方法
              $ curl -kL http://install.perlbrew.pl | bash
              $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile
              $ source ~/.bash_profile
              $ perlbrew install perl-5.14.2
              ...
              ...
              $ perlbrew switch perl-5.14.2
cpanm
              http://search.cpan.org/~miyagawa/App-cpanminus/


・CPANコマンドの代替
・省メモリ・高速動作・簡単
・クリーンなライブラリ環境の構築が可能

導入方法(perlbrew環境下)
$ perlbrew intall-cpanm
$ cpanm -v
cpanm (App::cpanminus) 1.5011 on perl 5.014002 built for i686-
linux
...
...
...
Carton
     http://search.cpan.org/~miyagawa/carton/


・アプリケーションごとに独立したライブラリ環境を構築
・モジュールバージョンを固定できる
・実行環境へのデプロイも楽々

                 導入方法
                 $ cpanm Carton
                 $ carton -v
                 carton v0.9.4
環境まとめ
$ curl -kL http://install.perlbrew.pl | bash
$ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile
$ source ~/.bash_profile
$ perlbrew install perl-5.14.2
$ perlbrew switch perl-5.14.2
$ perlbrew install-cpanm
$ cpanm carton
モダンかもしれない←
Perlウェブアプリケーション
       開発入門


    WAF編
最近は
Mojolicious推し
Mojolicious
                http://mojolicio.us/


・依存モジュールの少ない、ポータブルなWAF
・Mojolicious::Liteでsinatraライクなお手軽開発も可能
・ドキュメント豊富

                 導入方法(Carton利用)
                 $ carton install Mojolicious

                 利用例(Carton利用)
                 $ carton exec mojo -- generate lite_app
                 $ carton exec morbo -- myapp.pl
                 [Fri Apr 27 16:34:31 2012] [info] Listening at "http://*:3000".
                 ...
WAFまとめ


みなさん何推し?
 Amon2も作りやすいです。
 Catalystは挫折しました><
モダンかもしれない←
Perlウェブアプリケーション
       開発入門


デプロイ編(参考)
構成
   開発


               push              pull     Stage
         Dev               Git
                                          /Prod




daemontools
/supervisord      WebApp         Apache/Nginx
   /Upstart
デプロイ(1)
実行ユーザーを作成
$ sudo useradd -m myapp && sudo su - myapp
Perl環境構築
myapp$ ...省略...
Gitリポジトリをclone
myapp$ git clone <shared-repository> myapp
依存モジュールをインストール
myapp$ cd myapp
myapp$ carton install
※テスト
myapp$ carton exec -- prove
デプロイ(2)

daemontools runスクリプト例                    Apache conf 例
#!/bin/sh                                <VirtualHost *:80>
exec 2>&1                                 ServerName myapp.example.com
export HOME=/home/myapp                   <Proxy *>
cd $HOME/myapp                             Order deny,allow
exec setuidgid myapp ./script/start.sh     Allow from all
                                          </Proxy>
                                          ProxyRequests Off
script/start.sh
                                          ProxyPreserveHost On
#!/bin/sh                                 ProxyPass / http://localhost:50080/
source $HOME/perl5/perlbrew/etc/bashrc    ProxyPassReverse / http://localhost:50080/
carton exec morbo -- myapp               RequestHeader set X-Forwarded-HTTPS "0"
 --listen 'http://*:50080'               <VirtualHost>
まとめ
環境構築
$ curl -kL http://install.perlbrew.pl | bash
$ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile
$ source ~/.bash_profile
$ perlbrew install perl-5.14.2
$ perlbrew switch perl-5.14.2
$ perlbrew install-cpanm
$ cpanm carton
Mojoliciousアプリケーションの用意&実行
$ mkdir -p ~/work/myapp && cd ~/work/myapp
$ carton install Mojolicious
$ carton exec mojo -- generate lite_app myapp
$ carton exec morbo -- myapp
ありがとう
ございました

Contenu connexe

Tendances

Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspecTsuyoshi Yamada
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
BOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud FoundryBOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud Foundryi_yudai
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみたpyar6329
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)佐久本正太
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからTakeshi Kuramochi
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Sho A
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented featuretamtam180
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-akira6592
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築Nakazawa Yuichi
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツールtamtam180
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築靖 小田島
 
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecマニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecYukihiko SAWANOBORI
 

Tendances (20)

Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
BOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud FoundryBOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud Foundry
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
 
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
 
Hive undocumented feature
Hive undocumented featureHive undocumented feature
Hive undocumented feature
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築Vagrant & Dockerによるイマドキの開発環境構築
Vagrant & Dockerによるイマドキの開発環境構築
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
 
Jenkins with Docker
Jenkins with DockerJenkins with Docker
Jenkins with Docker
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
Chef windows linux環境構築
Chef windows linux環境構築Chef windows linux環境構築
Chef windows linux環境構築
 
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpecマニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
マニアックツール紹介、マネジメントのKnife-Zero(Chef)とテストスイートInSpec
 

En vedette

Niigata.pm決起集会
Niigata.pm決起集会Niigata.pm決起集会
Niigata.pm決起集会hayajo Imai
 
IPv6 Hackathon in 新潟
IPv6 Hackathon in 新潟IPv6 Hackathon in 新潟
IPv6 Hackathon in 新潟hayajo Imai
 
「CPAN Author になったよ」のつづき
「CPAN Author になったよ」のつづき「CPAN Author になったよ」のつづき
「CPAN Author になったよ」のつづきhayajo Imai
 
Perlでプチコン
PerlでプチコンPerlでプチコン
Perlでプチコンhayajo Imai
 
ギークハウスのこれから
ギークハウスのこれからギークハウスのこれから
ギークハウスのこれからpha pha
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/PrismNaoki Aoyama
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

En vedette (10)

Niigata.pm決起集会
Niigata.pm決起集会Niigata.pm決起集会
Niigata.pm決起集会
 
IPv6 Hackathon in 新潟
IPv6 Hackathon in 新潟IPv6 Hackathon in 新潟
IPv6 Hackathon in 新潟
 
Vimとjson
VimとjsonVimとjson
Vimとjson
 
「CPAN Author になったよ」のつづき
「CPAN Author になったよ」のつづき「CPAN Author になったよ」のつづき
「CPAN Author になったよ」のつづき
 
Perlでプチコン
PerlでプチコンPerlでプチコン
Perlでプチコン
 
ギークハウスのこれから
ギークハウスのこれからギークハウスのこれから
ギークハウスのこれから
 
Nodesong
NodesongNodesong
Nodesong
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similaire à Niigata.pm #1

OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8Satoshi Ohkubo
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Kimiyuki Yamauchi
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia鉄次 尾形
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
Casperjsのインストール
CasperjsのインストールCasperjsのインストール
CasperjsのインストールKohei Misu
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境Masashi Shinbara
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜Nobuhide Watanabe
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia鉄次 尾形
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたatk1234
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツールtotty jp
 

Similaire à Niigata.pm #1 (20)

OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
 
Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)Lapp環境をソースからインストールする(centos)
Lapp環境をソースからインストールする(centos)
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
Casperjsのインストール
CasperjsのインストールCasperjsのインストール
Casperjsのインストール
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜カオスエンジニアリング入門〜ChaosBladeの紹介〜
カオスエンジニアリング入門〜ChaosBladeの紹介〜
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
 
Yohes kitchen
Yohes kitchenYohes kitchen
Yohes kitchen
 
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみたOSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
Ilstudy001_20110806
Ilstudy001_20110806Ilstudy001_20110806
Ilstudy001_20110806
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
Hacking Vox and Plagger
Hacking Vox and PlaggerHacking Vox and Plagger
Hacking Vox and Plagger
 

Niigata.pm #1

  • 1. Niigata.pm tech talk #1 モダンかもしれない← Perlウェブアプリケーション 開発入門
  • 2. 自己紹介 ・Hayato Imai ・@hayajo ・Perl, PHP, Java, etc. ・社内のなんでも屋さん
  • 5. perlbrew http://perlbrew.pl/ ・複数のバージョンのperlをインストールして切り替え ・システムperlの環境をよごさずにモジュール入れ放題 ・root権限いらず 導入方法 $ curl -kL http://install.perlbrew.pl | bash $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile $ source ~/.bash_profile $ perlbrew install perl-5.14.2 ... ... $ perlbrew switch perl-5.14.2
  • 6. cpanm http://search.cpan.org/~miyagawa/App-cpanminus/ ・CPANコマンドの代替 ・省メモリ・高速動作・簡単 ・クリーンなライブラリ環境の構築が可能 導入方法(perlbrew環境下) $ perlbrew intall-cpanm $ cpanm -v cpanm (App::cpanminus) 1.5011 on perl 5.014002 built for i686- linux ... ... ...
  • 7. Carton http://search.cpan.org/~miyagawa/carton/ ・アプリケーションごとに独立したライブラリ環境を構築 ・モジュールバージョンを固定できる ・実行環境へのデプロイも楽々 導入方法 $ cpanm Carton $ carton -v carton v0.9.4
  • 8. 環境まとめ $ curl -kL http://install.perlbrew.pl | bash $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile $ source ~/.bash_profile $ perlbrew install perl-5.14.2 $ perlbrew switch perl-5.14.2 $ perlbrew install-cpanm $ cpanm carton
  • 11. Mojolicious http://mojolicio.us/ ・依存モジュールの少ない、ポータブルなWAF ・Mojolicious::Liteでsinatraライクなお手軽開発も可能 ・ドキュメント豊富 導入方法(Carton利用) $ carton install Mojolicious 利用例(Carton利用) $ carton exec mojo -- generate lite_app $ carton exec morbo -- myapp.pl [Fri Apr 27 16:34:31 2012] [info] Listening at "http://*:3000". ...
  • 14. 構成 開発 push pull Stage Dev Git /Prod daemontools /supervisord WebApp Apache/Nginx /Upstart
  • 15. デプロイ(1) 実行ユーザーを作成 $ sudo useradd -m myapp && sudo su - myapp Perl環境構築 myapp$ ...省略... Gitリポジトリをclone myapp$ git clone <shared-repository> myapp 依存モジュールをインストール myapp$ cd myapp myapp$ carton install ※テスト myapp$ carton exec -- prove
  • 16. デプロイ(2) daemontools runスクリプト例 Apache conf 例 #!/bin/sh <VirtualHost *:80> exec 2>&1 ServerName myapp.example.com export HOME=/home/myapp <Proxy *> cd $HOME/myapp Order deny,allow exec setuidgid myapp ./script/start.sh Allow from all </Proxy> ProxyRequests Off script/start.sh ProxyPreserveHost On #!/bin/sh ProxyPass / http://localhost:50080/ source $HOME/perl5/perlbrew/etc/bashrc ProxyPassReverse / http://localhost:50080/ carton exec morbo -- myapp RequestHeader set X-Forwarded-HTTPS "0" --listen 'http://*:50080' <VirtualHost>
  • 17. まとめ 環境構築 $ curl -kL http://install.perlbrew.pl | bash $ echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile $ source ~/.bash_profile $ perlbrew install perl-5.14.2 $ perlbrew switch perl-5.14.2 $ perlbrew install-cpanm $ cpanm carton Mojoliciousアプリケーションの用意&実行 $ mkdir -p ~/work/myapp && cd ~/work/myapp $ carton install Mojolicious $ carton exec mojo -- generate lite_app myapp $ carton exec morbo -- myapp