nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

『初めてのPerl 第7版』と『続・初めてのPerl 第2版』を読んで、Perlを学んだ

honto.jp honto.jp

自分はRubyからプログラミングをはじめたということもあって、そのRubyのご先祖様的存在であるPerlに前々から興味があったというのと、IT業界でオープン系のSEとしてキャリアを積む中では、LinuxであればデフォルトインストールされているPerlを覚えておくとよさそうだというのが、Perl学習のきっかけです。ではPerl学習のとっかかりになぜこの2冊を選んだかというと、いろいろ調べたところPerl入門界隈ではこの2冊が評判よさげだからになります。ちなみにここでの読んだというのは、内容を一読して、付属の練習問題をできるものはすべて解いたという意味です。自分の回答は以下の2つのレポジトリにまとまっています。

github.com github.com

まず『初めてのPerl』ではPerlの初歩的な文法や機能を学びます。初歩的といっても、まったくのプログラミング初心者向けではなく、ほかの言語でプログラミング自体は経験済みで、Perl自体に触れたことがない人向けという感じです。そして『続・初めてのPerl』はちょうど『初めてのPerl』の続編となっていて、『初めてのPerl』で取りこぼしたような文法・機能に触れつつ、より発展的な部分に触れていきます。とくに焦点が当てられているのがオブジェクト指向やテストやモジュール機構で、大規模なPerlプログラムを書くには必要な知識だと思います。あとはリファレンスのような大事な話も『続・初めてのPerl』で扱うので「書き捨てのスクリプトを書けるようになればいいや」程度でも両方読むに越したことはなさそうです。要は両方とも読んではじめてPerl入門完了という感じではあります。

読んでみての感想ですが、自分のような「プログラミング初心者ではないが、Perlについてはまったくの初心者」という人にとってはもってこいの2冊だったのではないかと思います。Windowsサーバのプロジェクトに参画しているということもあって、お仕事でPerlに接する機会はまだないのですが、趣味レベルでは問題なし。たとえば、AtCoderやyukicoderの簡単な問題であれば、Perlを使ってすらすら回答できているので、初心者マークを脱するレベルにはなったのではないかと思います。また、簡単なテキスト処理などでも、自分が比較的経験のあるRubyPythonと同じ程度の感覚でPerlを書くことができています。この2冊読むだけでそれぐらいレベルに達するということですね。

Linuxサーバでのちょっとした仕事を楽したい、自動化したいというのが自分がPerlに求めるレベルなのですが、そのレベルでいうとPerlってなかなかよいです。Perlにはコンテキストというものがあって、最初は???という感じでしたが、一度慣れてしまうと別に違和感がないというか、むしろ型を自動であれこれしてくれるので、ちょっとしたスクリプトを書くレベルであれば、かえって楽だったりします。またPerlの良くないところとしてよく挙げられる記号の多様ですが、これも乱用さえしなければ問題ないですし、むしろ書き手にとってはタイプ数が減るので、悪くないとも思えてきます。まあシステムが大規模化して複数人が保守するようなレベルになってくると、Perlでは苦しいところが出てくるかもしれませんし、それがPerlが人気を落としつつある理由というか、RubyPythonにシェアを奪われつつある原因なのだと思います。ただ自分が求めているものがスクプトやToyプログラム程度なので、であればLinuxにはたいていインストールされているというメリットが勝るかなーという感想です。

温故知新ではないですけれど、知識の幅が広がって、しかも新しい仕事道具・遊び道具を覚えることができたということで、Perlを学んでよかったというのが個人的な感想です。興味があるならなんでも勉強してみるものですね(´・ω・`)