Perl Hackers Hub

第72回 初学者に伝えたい Perl学習の勘所 ―勉強会を10年運営して培ったノウハウ(1)

この記事を読むのに必要な時間:およそ 2.5 分

本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは初学者のPerl学習を支援する勉強会Perl入学式の運営に携わっている尾形鉄次さん,和田智さん,三島智一さんで,テーマは「初学者に伝えたいPerl学習の勘所」です。

本稿のサンプルコードは,執筆時点(2022年3月)の最新であるPerl 5.34.1で動作確認を行っています。サンプルコードの全文は本誌サポートサイトから入手できます。

最初のプログラミングをPerlで学ぶ

義務教育でのプログラミング教育必修化など,老若男女を問わず初学者がプログラミングを学びたくなる機運は高まっています。しかし,プログラミングを学ぶためには実行環境を構築する必要があり,初学者にとっては学習のスタートラインに立つこと自体が大変です。

Perlは,macOSには最初からインストールされており,すぐに学習を開始できます。また,Perlが標準ではインストールされていないWindowsでも,本稿で紹介する手順で環境を簡単に構築できます。

筆者らは,Perl入学式という初学者向けのプログラミング勉強会を運営しています。名前のとおり,Perlを題材とし,プログラミング初学者を対象に,プログラミン グ学習の最初の一歩を手助けしています。Perl入学式は2012年に大阪で始まり,その後日本各地で開催され,現在もオンラインを主軸に開催を続けています。

本稿では,Perl入学式の10年間の運営で培ったノウハウをもとに,Perlを学ぶにあたって,プログラミング初学者がつまずきやすいポイントや,その理解の手助けとなる情報を解説します。執筆は,主に本節と「2022年にPerlを学ぶ意義」を尾形が,⁠環境構築」⁠よくある疑問への回答」を和田・三島が,⁠エラーが発生したときはどうすればよいか」⁠コミュニティに参加してみよう」を三島が,それぞれ担当しています。

2022年にPerlを学ぶ意義

20世紀末のCGIの時代から,PerlはWebアプリケーション開発を支えてきました。しかし,現在ではプログラミング言語の選択肢が増え,残念ながらPerlが選ばれづらいことも事実です。

そんな2022年現在において,プログラミング初学者,またはプログラミングがあまり得意ではない人がPerlを選ぶ利点はあるのでしょうか。

シェルスクリプトに似ている

今でこそインフラという用語がプログラミング活用を包含する時代になりましたが注1⁠,サーバの保守運用に携わる人は簡単なシェルスクリプトを主力とする人も少なくありません。そういう方にとって,Perlの記法はシェルスクリプトに似ていて馴染みやすいです。

注1)
Infrastructure as Codeと呼ばれます。

ワンライナーに適している

また,サーバの保守運用業務ではPerlのワンライナーが活躍します。

事前コンパイル不要なスクリプト言語で比較すると,Perlはインタプリタのサイズが小さいため起動が速いです注2⁠。特に,外部モジュールを使わないワンライナー処理に関しては顕著です。

さらに,$_注3の記述を省略可能な仕様が,ワンライナーの文字数削減に貢献することも見逃せません。このテクニックは,本格的なプログラムでは可読性を悪くするため避けられますが,ワンライナーでは短さに重きを置いてたびたび活用されます。

サーバ向けのOS環境に,ほぼ必ず入っている

そして,Web開発の現場でよく使われるLinuxやBSDなどのサーバ向けのOS環境に,ほぼ必ず入っていることもPerlの強みでしょう。Perlへの依存を弱めようとしているLinuxディストリビューションも一部存在しますが,サーバの保守運用に必須な各種パッケージがPerlに依存しており,サーバ内でのPerlの存在を確かなものとしています注4⁠。

構文が簡素

あらゆるデータの基本であるテキストデータの処理を後押しする簡素な構文がそろっているPerlは,サーバの保守運用のみならず,日々のちょっとした作業を楽にする道具として最適です。

Perlより新しいプログラミング言語がもたらす概念には,本格的な開発プロジェクトでは支持される反面,初学者にとってとっつきづらい厳格なものもあります。ゆくゆくは厳格な言語での開発を視野に入れつつ,足掛かりとしてPerlを勉強する戦略はお勧めです。

注2)
外部モジュールを読み込んだり,複雑な処理を行ったりする場合はPerlが遅くなる場合もあります。
注3)
各種関数のデフォルト引数や,次の値を入れるデフォルト変数を表します。詳しくは,perldoc perlvarを参照してください。
注4)
該当する代表的なパッケージとして,GitやMySQL,OpenSSLがあります。

著者プロフィール

尾形鉄次(おがたてつじ)

大学院卒業後の2003年,Webメール開発会社に入社。以後10年以上,Perlを使ったWeb開発に携わる。

教育に関しては大学でのTAの経験などから課題感を持っていたが,2013年以降にPerl入学式などのコミュニティで教える側に立つことにつながり,そこで得られた知見を社内外で活かしている。

2019年よりJapan Perl Association理事,およびPerl入学式2代目代表を務める。

GitHub:xtetsuji
Twitter:@xtetsuji


和田智(わださとし)

Perl入学式 in YAPC::Asia 2013で受講生としてPerlに触れる。現在は経理業務を中心にバックオフィス業務を行っている。

シーサー㈱
GitHub:sironekotoro


三島智一(みしまともかず)

本職はITとは関連のない仕事に就いているが,2012年にPerl入学式に受講生とした事をきっかけに,趣味でプログラミング,オープンソースコミュニティ活動に参加している。現在はPerl入学式サポーター,Kansai.pm代表を務める。

GitHub:tomcha
Twitter:@tomcha_