だいたいPerlって何なのさ

真里:加藤真里  シレ:シレスト=ノイデルファーム

シレ:さて……私達がこれから使うプログラミング言語は"Perl"(パール)といいます。……釘をさしておきますが、「真珠」のパールは"Pearl"ですよ。

真里:……あー!あたいのセリフまた取ったぁぁ!!

シレ:ま、まぁ、この注意書きはある程度「お決まり」なものですから……さて、たぶん最初から「プログラミング言語」と聞いてアレルギーを起こした人がいるかと思いますが...少なくとも大学で中国語の単位を取るより楽、と言っておきます(注:中国語は語学の単位の取れなかった人が集まるといわれる)。1つ例を見てみましょうか。

print 'ユーザー名を入力>>';
$user = <STDIN>;
chop $user;
if ( $user ne 'Ponapalt' ) { print "\n\nはじめまして、$userさん。"; }
else { print "\n\nおはようございます、編集長。"; }

シレ:ちなみにこれは、ユーザー名にPonapaltと入れれば「おはようございます、編集長。」と返事し、それ以外ならはじめましてと挨拶を返すなんだか私自身みたいなスクリプトです(笑)ちなみに、そこかしこで使っている"print"は、「モニタに印刷する=表示する」という命令です。もしかしたら高校の教科書のBASICの所を読んだことのある人にとってはおなじみかもしれませんね。

真里:あのさぁ……最初からふつう……こんなスクリプト出す?ふつうはさ、「さてまずは"Hello, World!!"を表示してみましょう、とか...

シレ:まどろっこしい説明は私自身嫌いですから(笑)

真里:あ、そう……(汗)

シレ:それでは一応このスクリプトの意味をたどってみましょう。……とはいえ、たぶんわからない人もいると思うので、今回は雰囲気だけでもつかんでみてください。後で散々説明しますしね。

1行目: print 'ユーザー名を入力>>';
「ユーザー名を入力>>」と画面に表示します。

2行目: $user = <STDIN>;
"標準入力"(Standard Inputの略でSTDINというわけです)から何かデータを1行ぶん読み取って(<STDIN>)、それを"user"と名前のついた入れ物におさめておきます($user = )
ちなみに"標準入力"は、自分のパソコンで動かしている時はキーボードのことです。

3行目: chop $user;
"user"と名前のついた入れ物(「変数」と言ったりもしますね)の最後の文字をちょん切ります。ユーザー名を入力し終わったら改行(Enter)キーを押すので、最後に余計な改行が入ってしまいます。それをちょん切っているわけです。

4行目: if ( $user ne 'Ponapalt' ) { print "\n\nはじめまして、$userさん。"; }
5行目: else { print "\n\nおはようございます、編集長。"; }
if 〜 else 〜は、英語を少しでもかじっていればだいたい想像がつきますね。
if (条件) {やりたいことその1}
else {やりたいことその2}
で、もし"条件"があてはまれば"やりたいことその1"を実行、あてはまらなければ"やりたいことその2"を実行、というわけです。ここでは
$user ne 'Ponapalt'
と入っていますので、"user"と名前のついた入れ物の中身が"Ponapalt"でなければ
ne = Not Equal)……という条件になります。だから、ここでちゃんと"Ponapalt"と打った場合とそうでない場合が区別できるわけです。
ちなみにprintは画面上に文字を表示する命令です(後でファイルへの書き込みにも使いますが)。

……と、こんな感じです。

真里:な、なんか英語っぽいものがずら〜っと………

シレ:でも変な日本語を書くより、まだ英語のほうが楽です。日本語変換する必要もありませんし。だから日本でも英語で書くプログラム言語が主流なんでしょうね。

真里:で、でもさ……なんかさ、英語の授業とかでさ……文法とかややこしいじゃない。だいたいあたい、英語の点数いつも赤点だよ。

シレ:そんなに悪い点ばかり取ってるんですか!!……ちゃんと勉強してください!

真里:あたいにそれを求めるのって無茶だと思うけど……

シレ:ま、まぁ、英語の文法よりは簡単ですし、単語数も多くないですし、関係代名詞とか過去完了とか仮定法とかはありませんから安心してくださいね(笑)……それでは次回からさっそくちょっとずつ説明をはじめます。

ここを読んで自分のパソコン等にもPerlを導入しておいて下さい。

 

[次回に続く……]

 

←PREV | NEXT→

Return : Perl Top