Featured image of post 同じ式なのにスカラーとリストで返る値が違う。その理由を押さえる【Perl のコンテキスト】

同じ式なのにスカラーとリストで返る値が違う。その理由を押さえる【Perl のコンテキスト】

配列を代入すると要素数になったり中身になったりするのは、Perl が式を評価する文脈(コンテキスト)で値を変えるからです。スカラー・リスト・void の各コンテキストが生じる場面、scalar() による明示、wantarray で呼び出し側に合わせて戻り値を変える関数の書き方を解説します。

Featured image of post Test::More の次に。サブテスト・モック・深い構造の比較まで1つで書く【Test2::V0】

Test::More の次に。サブテスト・モック・深い構造の比較まで1つで書く【Test2::V0】

Test::More との違いから始めて、Test2::V0 の主な関数、サブテスト、todo と skip、モック、array/hash/bag による深い構造の比較、Web アプリのテスト、カバレッジ測定、GitHub Actions での実行、TDD の進め方まで解説します。

Featured image of post ハッシュの中に配列を入れたら値が取れない。入れ子の仕組みを押さえる【Perl のリファレンス】

ハッシュの中に配列を入れたら値が取れない。入れ子の仕組みを押さえる【Perl のリファレンス】

配列やハッシュを入れ子にするにはリファレンスが要ります。\ による作成、無名配列・無名ハッシュ・無名サブルーチン、-> とポストフィックスでのデリファレンス、ref による型判定、ハッシュの配列など多次元データ構造の組み立て方を実例で解説します。

Featured image of post ログから日付や URL を抜き出す正規表現を、読める形で書く【Perl の正規表現】

ログから日付や URL を抜き出す正規表現を、読める形で書く【Perl の正規表現】

m// s/// tr/// の演算子、メタ文字、キャプチャと名前付きキャプチャ、修飾子、先読み・後読みを順に解説します。/x 修飾子で長いパターンを読める形に書く方法と、メールアドレス・URL・日付を扱う実用パターン集も載せています。

Featured image of post 1ファイルで Web アプリを動かし、そのまま JSON API と WebSocket まで足す【Mojolicious::Lite】

1ファイルで Web アプリを動かし、そのまま JSON API と WebSocket まで足す【Mojolicious::Lite】

Mojolicious::Lite で Hello World を1ファイルで動かし、ルーティング・テンプレート・JSON API・WebSocket・テストを順に足していきます。URL 短縮サービスの実装例と、Hypnotoad やリバースプロキシでの本番デプロイまで扱います。

Featured image of post CPAN にはモジュールが多すぎて選べない。実務でまず使う20本をカテゴリ別に【CPAN モジュール20選】

CPAN にはモジュールが多すぎて選べない。実務でまず使う20本をカテゴリ別に【CPAN モジュール20選】

CPAN の仕組みとインストール方法から始めて、ファイル操作・HTTP・JSON/YAML/CSV・日時・データベース・オブジェクト指向・テスト・ユーティリティの定番20本を用途別に紹介します。cpanfile での管理例付き。

Featured image of post ログ集計も CSV 加工も一括置換も、スクリプトを書かずに1行で済ませる【Perl ワンライナー】

ログ集計も CSV 加工も一括置換も、スクリプトを書かずに1行で済ませる【Perl ワンライナー】

-n -p -l -a -i -0 -M の各オプションが何をしているかを押さえたうえで、ログ解析・CSV 加工・一括置換・集計・ファイル名変更・エンコーディング変換など12の実用例を並べます。$_ などワンライナーに出てくる Perl のイディオムも解説します。