ぼりぼり農園

iPhoneアプリ開発しながらObjective-CとPerlとLinuxとネタ集め。家に大きめの机欲しい。あとイス。

Perlの勉強#001:おまじないについて〜魔法のコトバ〜

前回(Perlの勉強#000:Hello World!(+1)を作って実行)では、「HelloWorld!」の文字列を、printを使って表示するという所までやりました。
今回は、全てのPerlファイルを作成するときに書いておくべき、共通の「おまじない」についてです。

おまじない

下記の3行を、今後作成するplファイルの冒頭に記述するようにします。

#!/usr/bin/env perl
use strict;
use warnings;

細かく見ていきます。

#!/usr/bin/env perl

この行は初心者向けとしては深いので読み飛ばしてもらって大丈夫です。だからおまじないなのね。
"#!"で始まる行を、shebang(シバン)といって、このファイルを実行する際のインタープリタへのパスとして、最後の引数に渡して解釈する、というなんだかわかったようなわからないようなものです。
結局わからなかった。色々詳しいページもあるので各自参照してください。
http://cpplover.blogspot.jp/2013/08/shebang.html
http://www.rsch.tuis.ac.jp/~ohmi/literacy/cgi/perl.html
この行は無くても実際は動く(前回も動かせた)けど、これがあると、コマンドとして実行する事ができるようです。
前回作ったhello.plに対してやってみます。

$ perl hello.pl
$ Hello\nHello

出ました。普通にperlコマンドであれば実行できます。
perlコマンドではなく、コマンドとして実行してみたい。

$ chmod +x hello.pl
$ ./hello.pl
./hello.pl: line 1: print: command not found
./hello.pl: line 2: print: command not found

直接ファイル名をコマンドとして実行する為に、"chmod"コマンドでhello.plファイルに書き込み権限を追加してから実行してみました。
だめです。コマンドが見つからない、と表示されました。
おまじないが書かれていないからです。
という事で、hello.plの1行目に"#!/usr/bin/env perl"を追記して保存。
再度やってみる。

$ ./hello.pl
Hello\nHello

できた!
という事のようです。これが何に役立つのかはまだ実際よくわからないですが、あった方が良いとの事なので、ひとまず書くようにしましょう。

use strictでstrict(厳格モード)

こちらの方がわかりやすい。
"use strict;"とする事で、このplファイルが「strictモード(厳格モード)」というモードで実行される事になります。
厳密な書式を定めたり, 未定義の変数を警告するといった効果があります。
どういう事かというと、これを書いておくと、致命的なタイプミスがあった場合に警告してくれます。
例えば、変数名"hello"を作ったのに、"hellllllo"で間違って実行しようとしたりすると、そんなの無いよって言ってくれるので便利です。書いておこう。

use warningsでバグ予防

"use warnings;"と書くと、望ましくない記述を警告してくれる効果があります。
Xcodeでいう黄色いエラー表示のやつです。
致命的ではないけど、正しい書き方ではないよ!って注意してくれる几帳面なやつです。頼もしいので、書いておこう。
Helloworldくらいではお世話にならないですが、今後すごく使えます。

前回のhello.plにおまじない追加

という事で、前回のhello.plにおまじないを追加します。
Perl入学式では、ここが練習問題になっているので、各自やってみよう。

#!/usr/bin/env perl
use strict;
use warnings;

print 'Hello\n';
print "Hello\n";

こんな感じです!
という事で、唱えておけば憂いなし!のおまじないを今後は冒頭に記述するようにしましょう。

今回はここまで。お疲れさまでした。
前回(Perlの勉強#000:Hello World!(+1)を作って実行)