1章 Perl 入門
この章でわかること
読んでいく
オーディオコメンタリー方式で、言いたいこと、補足があるぶぶんだけ書いていきます。
- Perl とは Perl 5 のこと
- 想定読者
- 自分で使うシンプルなプログラムを書くのに十分な Perl 5 の基礎を学びたい人向け
- リファレンスではない
- perldoc や metacpan などを見ていくことになるでしょう
- リファレンスではない
- 少なくともプログラミングについて多少なりとも理解している
- ターミナルの使い方
- ファイルの編集
- プログラムの実行方法
- 変数
- サブルーチン
- ……
- 演習問題がついている
- 手を動かしながら学べます、良問とは言えないものもありますが
- 自分で使うシンプルなプログラムを書くのに十分な Perl 5 の基礎を学びたい人向け
- 次に読むべき本
- 続・初めての Perl Intermediate Perl
- https://www.oreilly.co.jp/books/9784873116280/
- Perl モジュール、eval、リファレンス、OOP、テストが触れられている
- マスタリング Perl Mastering Perl
- https://www.oreilly.co.jp/books/9784873113975/
- デバッグ、プロファイラ、ベンチマーカー、フォーマッタ、静的解析、設定の扱い方、エラー処理、ログが触れられている
- プログラミング Perl Programming Perl
- https://www.oreilly.co.jp/books/4873110963/
- 決定版のリファレンス
- a.k.a ラクダ本
- 続・初めての Perl Intermediate Perl
- Perl は簡潔な構文を備える
- デフォルト値、ショートカット、糖衣構文など
- 学習量は必要になるものの、短い記述で多くのことができるようになっています。
Perl プログラムは、不慣れな人には、回線ノイズのように見えることがあります。しかし、経験を積んだ Perl プログラマには、壮大な交響曲の楽譜に見えるのです。
p.6
だんだんこわくなってきたぞ。
#!/usr/bin/env perl @lines = `perldoc -u -f atan2`; foreach(@lines) { s/\w<([^>]+)>/\U$1/g; # 処理対象の値(この場合 @lines から切り出された各行)が省略されている print; # 処理対象の値(この場合 ↑ の処理結果)が省略されている }
本で紹介されている実例はこれです。 こうした暗黙の値を利用するケースですが、サブルーチンの返り値を暗黙的に書く、とかがあります。
交響曲に見えるかは謎ですが、慣れたらサクっと書けそうな点は好感が持てます。
- Perl のサポートポリシー
- CPAN
- Perl ファイルの拡張子
- 特定の Perl バージョンからしかない機能を使うとき
say
(Perl v5.10 or higher)を使いたい場合use v5.10;
oruse 5.010;
- feature プラグマの Implicit Loading のことのようです
- バージョンの表記方法
- 歴史的経緯がある部分のように思います、特に Semantic Versioning の世界観に慣れているとビビりますね
- v を使うもの
- 使わないもの(その場合マイナーバージョンは3桁の数字)がある
生まれた疑問点
ここでは特になかったです。
おわりに
引き写し的にゆっくり勉強してみたわけですが、 これは効率が悪いように見えて、細部の疑問が浮き彫りになっていいですね。
たとえば use feature qw/state/;
は書いたことがあったのですが、あれらと use v5.10;
が関係するのは知りませんでした。
それでも、これは教科書をもう一度編纂して出版するような営みです。
願わくは、こうした大仰な手を取らずとも、細部の疑問に対して反応できたらよいのですけれど。