インタプリタ型のプログラミング言語と言えば、Ruby、Perl、Pythonが有名です。
RubyはRuby on Railsというフレームワークの普及によって近年利用者が増えています。
また、Pythonも一時期、一番使用されない言語の認識でしたが、演算に関して優れている特性から、ビッグデータの解析など近年では1番トレンドになっている言語です。
Perlと言えば、CGIが流行った時が全盛期であり、今でもPerlを使用している人もいます。
私も、Unix/Linux上でスクリプトを作成する場合、たまにPerlで記述します。
言語によって処理しやすい事や出来ることも違うので、複数のスクリプトやプログラミング言語を覚える事が技術者にとって悪い事ではありません。
Active PerlというWindows版もあるので、環境に依存せずにPerlでのプログラミングやスクリプトの作成が出来るので、今回はPerlの学習にお勧めな書籍のレビューをしていきたいと思います。
目次
新版Perl言語プログラミングレッスン入門編
全てにおいて初心者向け
変数から改行、引用符の使い方まで丁寧に解説が書いてあります。
コーディングの基礎だけではなく言葉の解説もしっかり書いてあるため、一通り理解できると他のプログラムを読む際にも理解が早くなります。
技術的な壁と言うのは専門用語が多いです。
聞いたことがある言葉でも意味や使い方が違っていたり、初めて覚える言葉は馴染むまでに時間がかかります。
本書ではスカラーという用語で似たような解説をしています。
数学の「ベクトル」と「スカラー」をPerlのリストとスカラーに置き換えています。
また、学習する事で知識として還元していく事が出来るので丁寧に記載されていて非常に素晴らしいと感じました。
if文のサンプルの結果などもWindowsでの結果画面があるので、Linux環境でもWindows環境でも検証していけます。
構文からファイル操作、ライブラリやモジュールなどPerlでプログラムを書くための基礎は間違いなく身につくと言っていいと思います。
ここまで書いてあれば少なくとも、プログラムを全く書けない人はいないと思います。
また、サイトマップの作成など視覚的に動きが分かるサンプルも記載があるので、複数パターンのコーディングを学習していく事で、色々な場面で活用していけるようになるでしょう。
配列とハッシュの解説が分かりやすい
インフラエンジニアであったり、プログラミング初心者の時に壁となる知識として、配列とハッシュが該当すると個人的には思います。
配列は見れば何となくすぐ理解できると思うのですが、使い方が分からない事が多いと思います。
ハッシュに関しては、使い方もそうですがスカラー変数などの見分けに少し苦しむかもしれません。
しかしながら、覚えて使えるようになる事で一段階レベルアップすると思います。
個人的にですが、Perlで配列やハッシュを扱うようになってから、シェルスクリプトでも同じような考え方で、Perlでもシェルスクリプトでも同じ処理をするプログラムを書けるようになりました。
少なくとも構文に違いはあれあど、他の言語でも覚えるべき基礎知識であるのが配列とハッシュだと個人的に思っています。
forやforeach文も基礎知識ではありますが、そもそもこれが出来ないと配列などを使った処理を活かしていけないので、自然に配列やハッシュを組み合わせた処理を書いていく事で身についていくと思います。
問題で知識の確認が出来る
各章末に問題文が載っています。
章末が、内容のまとめのような書籍も多いですが、本書籍は問題と解説があります。
プログラムを書けるという事は読めるという事です。
本当に書けるようになった言語は読めるようになるのが一般的です。
読めないけど書ける、というのは絶対にないです。(適当に書くことは出来る)
問題文がある事で、きちんと理解できているか、認識が合っているか確認することが出来ます。
IT業界の知識は、どうしても反復した作業経験や言葉の暗記などで記憶に留めおく必要があります。
知識として長く留めるためにも解読するという行為は有効です。
今まで読めていた漢字が急に読めなくなったりしないように、解読する事が出来るプログラムは知識として正しい状態です。
問題の読み解き方を身につけるのも学習の一つと言えます。
そんな入門編の書籍はこちら
もっと自在にサーバを使い倒す 業務に役立つPerl
書き方よりもサンプルが豊富
入門編の書籍では、完全に初心者向けで丁寧に解説がある事を書きました。
こちらでは、基礎構文ももちろん記載がありますが、どちらかと言えばPerlを少し書けるほうが理解が早い書籍です。
手取り足取りは書いていないと思っていただければと思います。
しかし、サンプルは豊富です。
Perlが書けるようになったけど、同じようなコーディングしか出来ない人や、他の観点、基礎的な使い方のパターンを増やしたい人には役に立つと思います。
基本的に、何かを解説する際にはコードが書かれていることをが多いです。
図解よりもサンプルの方が多いです。
なので、読み書きがある程度出来る人にとっては実用的です。
良いなこれ、と思ったものはすぐ使っていけると思います。
構文の良し悪しがしっかり書かれている
一つの処理を行うのに、複数のパターンや人によって書き方が違うのプログラムやスクリプトです。
そんな中で、どの処理でどういった方法を取った方かが良いかがきちんと書かれているのが良いと思いました。
本書籍ではdo ~ whileを使用しない理由として、ループ制御が出来ずwhile文を使った方が良いといった記載があります。
正しい構文で書くことは他の人が読むときに非常に役に立ちます。
プログラムに関しては、他人のプログラムを読むときに「なんでこんな書き方しているんだ」「こんな書き方したことが無いから内容が分かりにくい」といった事がしばしばあります。
もちろん、書き方を見て信頼出来ない内容のものもあります。
出来ればシンプルかつ正確な記述が良いですよね。
入門編になかった知識
入門編との差として、データベースへの接続、SQLの発行などの操作についてサンプルが記述されています。
これはデータベースとの連携になるので、単純なプログラムだけではなく応用です。
また、Unix向けですが、CPUなどのリソース情報を取得して集計するプログラムもあります。
これらはエンジニアであれば持っておいて良い知識と言えます。
そのほかにもアクセスログなど実務に活きる集計についても記載があります。
また、Ruby on Railsに対して、PerlのフレームワークであるmojoliciousのインストールとHTMLの操作についても記載があります。
そこまでボリュームはありませんが、ここで知る事で使い方を学ぶきっかけにはなります。
そんなPerlの応用にお勧めな書籍はこちら
最後に
Perlについて参考になる書籍について紹介してきました。
私も実際に購入して今でもたまに読んでいます。
Perlに関しては、必要に応じて今で書くことがありますし、特にWindowsのバッチのように正規表現が全然使えない環境ではActive Perlの方がよっぽど便利です。
正規表現についても両書籍で学べば、かなり扱いになれるかなと思います。