2019年12月29日日曜日

読書環境

今日読んだ本、ミニマルPerl ―Unix/LinuxユーザのためのPerl習得法 (Tim Maher(著)、安藤 慶一(翻訳)、磯部 孝一郎(翻訳)、オライリージャパン)の感想。

のんびりと取り組んでいた初めてのPerlも終えて、続・初めてのPerl 改訂第2版を読んだり取り組もうと思ったけど、その前に何かPerlの本を一冊読んでおくのもいいかなと思って本著を読んでみることに。本著を選択した理由の一つは、初めてのPerlで少し出てきたワンライナーが快適に感じて、それが豊富に出てくるような内容っぽかったから。

読み終えてみて、本著を最大限に活かせそうな人は、普段UnixやLinux系、macOSなどのOSで、sedやawk、grepなどの基本的なコマンドやシェルスクリプトを記述、頻繁に利用して作業しているという人。特に前半部分。

全体の構成について、前半部分は、上記に挙げたコマンドで行うことをPerlで行う、そのコマンドでは出来ないより複雑なことをPerlで行う、あるいはそのコマンドとPerlを組み合わせて何かお行うといった内容。sedやawk、grep等のみで作業してる人は、それでは出来ないことを出来るようになったり、より複雑なことを簡単に出来るようになったり眼から鱗のことをいっぱい得ることができそう。また、それでもやっぱりPerlではなくsed等の基本的なコマンドで作業したいという人のため、いつでも戻れるようになるべく互換性を保った書き方が心掛けられているということもいいことの一つ。

他にも、基本的なコマンドを使って作業してないという人にも、Perlで出来ることを身につけるのに良さそうな一冊。前半部分について、ファイルに保存して実行するプログラムもあるものの、殆どはファイルに保存せずに済むワンライナー、一行記述して実行するだけのコードだから。全くPerlを知らないという人にはちょっと難しいかもしれないけど、習うより慣れろということで、とにかく本著のワンラインーを入力、実行しながら読んでいけば、自分がしたいことを出来るようにはなれそう。前半部分のみでは人が書いたPerlのコードを読めるようにはなれないかもしれないけど。

全体の構成について、後半の部分はPerl言語の基本的な、より詳細な解説、そしてCPAN、モジュールの使い方まで。後半部分については、上記に挙げたどちらの種類の人にも役に立ちそう。sedやawk等からPerlを中心に移した人にとってはPerlの詳細を知ることができるし、基本的なコマンドを使っていなかった人も、自分がしたいことが出来るなるだけではなく、人が書いたコードを読んだり、人に使ってもらうようなスクリプトファイルを書くのに役立ちそうだし。

その他に、意外かもしれないけど、Pythonを普段使っているという人にも良さそうな一冊。というのもPerlの考え方の一つの「TMTOWTDI(TIMTOWTDI)」(There's more than one way to do it、やり方は一つじゃない)というのと、Pythonのなるべく読みやすく、一つの書き方が望ましいという考えで、それが仕様にまで及んでるのとは全然違うかもしれないけど、本著のミニマルというのはなるべく分かりやすい単純な方法で書くという方針も含まれてるから。それに、Pythonではワンライナーが出来ない事もないけど、Perlほど上手く出来なさそうだし、特殊記号、特殊変数も豊富だったりするわけではないし。本著をきっかけに異なる文化の言語に触れてみるのも良さそう。(本著と話が逸れるけど、この意味でPython One-Linersがどんな感じなのか気になってたり。) ただ、著者は

ニシキヘビ(Python)の肉は避けましょう。
って言ってるけど。

他にはタイトルにUnix/Linuxユーザのためのとあるけど、Windowsユーザーにも使える部分が多かった印象。sed等のコマンドを使うには別途インストールしたり、環境構築の必要があるけど、その部分を割り切って飛ばして読んでしまうこともできるし。あと、僅かではあるものの、本著にもWindowsについての記述もあったから。

内容の注意点としては、本著の出版日が結構前だからか、あるいは出版日は関係ないかもしれないけど、安全ではない、あるいは推奨されてないような書き方のコードが結構見られるところ。。具体的には、ファイルに保存して実行するコードについて、例えばstrictモード、変数宣言についてmyが殆ど記述されてないということ。かなり後半の方でstrictモードやmyを付けた変数宣言、スコープについての解説はあるけど。

という事で、本著により色々なワンライナーに触れることができて良かったし、また、さらにワンライナーに興味を持ったから、本著で知ったことを活用しつつ、さらに本著には記述されてなかったワンライナーを知ったり、より気軽にワンライナーを逆引きできるように、Perl One-Linersを読んで本著で知ったことをさらに活用できてるようになれればいいなぁと思った今日この頃。

0 コメント:

コメントを投稿