このリポジトリは、MacOS環境でのPerlアプリケーション開発のための基本的なテンプレートです。Mojoliciousフレームワークを使用したWebアプリケーション開発と、Plack/PSGIによる本番環境デプロイの基盤を提供します。
- macOS
- Homebrew
- Perl 5.40.1以上(plenvでの管理を推奨)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# plenvをインストール
brew install plenv
brew install perl-build
# shellの設定を追加
echo 'eval "$(plenv init -)"' >> ~/.zshrc
source ~/.zshrc
# 最新の安定版Perlをインストール
plenv install 5.40.1
plenv global 5.40.1
plenv rehash
# cpanmのインストール
curl -L https://cpanmin.us | perl - App::cpanminus
plenv rehash
# 必要なモジュールのインストール
cpanm Module::Install
cpanm Carton
cpanm Plack
cpanm Starman
# リポジトリのクローン
git clone https://github.com/timeless-residents/handson-perl.git
cd handson-perl
# 依存モジュールのインストール
carton install
handson-perl/
├── lib/ # アプリケーションコード
│ └── MyApp/
│ └── Controller.pm # コントローラークラス
├── script/ # 実行スクリプト
│ ├── app.pl # 開発用サーバースクリプト
│ └── app.psgi # 本番用PSGIアプリケーション
├── t/ # テストディレクトリ
│ └── basic.t # 基本的なテスト
├── local/ # Cartonが管理する依存モジュール (gitignore)
├── cpanfile # 依存モジュールの定義
├── .gitignore # Gitで無視するファイルの定義
└── README.md # このファイル
# 開発モードでアプリケーションを実行
carton exec -- perl script/app.pl daemon
# テストスイートの実行
carton exec -- prove -l t
# Starmanを使用して本番モードで実行
carton exec -- plackup -E production -s Starman --workers=4 script/app.psgi
このテンプレートを基に、以下のような機能を追加できます:
- HTMLテンプレートの使用
- データベース接続の実装
- ルーティングの追加
- RESTful APIの構築
- テストケースの拡充
- モジュールのインストールエラー:
cpanm --force Module::Name
を試す - パーミッション問題:
sudo chown -R $USER:$USER ~/.cpanm/
- plenvコマンドが見つからない: PATHの設定を確認
- ビルドエラー: Xcodeコマンドラインツールのインストールを確認
このプロジェクトはMITライセンスの下で提供されています。詳細についてはLICENSEファイルを参照してください。
- このリポジトリをフォーク
- 機能ブランチを作成 (
git checkout -b feature/amazing-feature
) - 変更をコミット (
git commit -m 'Add some amazing feature'
) - ブランチをプッシュ (
git push origin feature/amazing-feature
) - プルリクエストをオープン
プロジェクトに関する質問や問題がある場合は、Issueを開いてください。