Perl はテキスト処理やファイルの処理が得意なので、便利なスクリプトを簡単に書いて、且つ、簡単に実行できます。
Perl を実行してみる
Mac OS X には最初から Perl がインストールされてます。
まず、アプリケーション>ユーティリティの中にある「ターミナル」というアプリを立ち上げます。
Perlがインストールされてるか確かめる簡単な方法は(なんでも良いのですが)ターミナルで次のように打ち込んで、
$ which perl
エンターを押して以下のように Perl がインストールされている場所が表示されれば Perl が入ってるんだなと分かります。
/usr/bin/perl
Perlの実行方法は主に2つ。
- 短いものはコマンドラインに書いてそのまま実行
世界で一番有名なプログラム “Hello, World” をターミナルに表示させるには、
$ perl -e 'print "Hello, World\n"'
と打ち込んでエンターを押すと、ターミナルの次の行に「Hello, World」と表示されます。 - もう一つの方法はプレーンテキストが編集できるテキストエディタ(つまりメモ帳)でスクリプトを書いて、ターミナルから実行する方法
2番目の方法の方がいろいろとやりたい事ができる(やり易い)のでこちらを解説します。
テキストエディタの準備
テキストエディタはなんでも使い易い物を使えば良いと思います。
気軽に使えて高機能なフリーのエディタとして mi というエディタがお勧めです。
編集中の複数のファイルをタブで切り替えたり、開発言語毎にモードが選べたり、エンコードや改行コードを色々設定できたりと、必要充分な感じのテキストエディタです。
Perl のスクリプトを書いてみる
さて、何か簡単なスクリプトを書いてみましょう。
メモ帳にだーっと書いたテキストを使って、行の先頭と末尾に HTML の p タグを付けて返す(ターミナルに表示する)スクリプトを作ってみることにします。
スクリプトはこんな感じ
#!/usr/bin/perl use warnings; while(<>){ chomp; print "<p>" . $_ . "</p>\n"; }
これだけじゃ暗号みたいなのでコメントを付けます。(#から行末までがコメントになります)
#!/usr/bin/perl use warnings; #なんかおかしかったら警告を表示させる #コマンドラインで指定したファイルを1行ずつ読み込む while(<>){ #読み込んだ行の改行文字を削除する chomp; #行の先頭と末尾に p タグをつけてターミナルに表示&改行 print "<p>" . $_ . "</p>\n"; }
ちなみに1行目の「#!/usr/bin/perl」は Perl でスクリプトを実行して下さいというコンピュータへのお願いです。
さてこのスクリプトを mac の中の好きな場所に好きなファイル名を付けて保存して下さい。
ちなみに僕は「plus_p_tag.pl」という名前を付けて、「/Users/俺/Documents/perl」というフォルダに保存しました。
また、これから Perl の餌食になるサンプルファイルを「sample.txt」として用意しました。
sample.txt の中身はこんな感じ
「お母さーん、ご飯まだ〜?」 「ちょっと待ちなさい、あ!」 「どうしたの!?」 「生理来た」
Perlスクリプトを実行する
では早速できたばかりのPerlスクリプトを実行してみましょう。
ターミナルのコマンドラインをつぎの法則で打ち込みます
$ perl perlスクリプト 読み込むファイル
今回の場合だとこんな感じになります(ターミナルに打ち込みたいファイル名をドラッグすると絶対パスの表示名に変換してくれます)
$ perl /Users/俺/Documents/perl/plus_p_tag.pl /Users/俺/Documents/perl/blog/sample.txt
上記をエンターで実行すると、ターミナル上に p タグがついた文字列が返って来ました。
<p>「お母さーん、ご飯まだ〜?」</p> <p>「ちょっと待ちなさい、あ!」</p> <p>「どうしたの!?」</p> <p>「生理来た」</p>
最後にうんちく
ターミナルでファイル名を打ち込むときに、いちいちドラッグするのは面倒だし、表示もなんか長くて鬱陶しいですよね。
そんなときはターミナルで今作業するディレクトリに移動してあげれば、ファイル名だけの指定で実行できるようになります。
cd コマンドで作業したいディレクトリをカレントディレクトリに指定できます。
$ cd /Users/俺/Documents/perl
こうするとさっきの Perlスクリプトは以下のような短いコマンドで実行できますね。
$ perl plus_p_tag.pl ./blog/sample.txt