Hagex-day info

紅茶とお菓子について書いているほっこりブログです

1日目 基礎編#1

perlの勉強をしようということで、翔泳社の『独習Perl 第2版』(武野健志著)をテキストに勉強していこう。まあ、これも単に備忘録というか復習です。

1.1 スクリプトと実行
・命令の後はスペースを入れてオプションをつける
・複数のオプションをつけるときはコンマ(,)で区切る
・全ての命令の最後にセミコロン(;)をつける
・命令からセミコロンまでの1単位を「ステートメント」と呼ぶ
perl命令の一部は「関数」と呼ばれ、関数が返す値を「戻り値」と呼ぶ

例1.1.1スクリプト実行例(p4)
直接perlをコマンドラインで実行するときは「perl -e"命令文"」
perl -e "print 12345;"
とやってみるが、全く結果がでない。実際は動作しているが、単に表示されないときもあるらしい。そういう時はページャを使えば
$ perl -e "print 12345;" | more
12345

見事に表示された。

例1.1.2スクリプト実行例(p5)
コマンドラインで毎回スクリプトを書くのは面倒なので、start.plファイルに保存して、実行してみる。
$vi start.pl
とviで開いて以下のスクリプトを書く
print 12345;
パールを実行するのは perl <ファイル名>なので、
$ perl start.pl
と実行すると
12345
無事に起動する。

例1.1.2スクリプト実行例(p5)

perlスクリプトはHTMLと同じく自由型なので、

print             123;
  print  456            ;
 print

789

;

とスクリプトを書いて、start2.pl保存。
$ perl start2.pl
123456789

と表示される。

【練習問題】1.1 スクリプトと実行
・問題1 画面に-0.123と表示するスクリプトを直接コマンドラインで記述しなさい。また、同じ動作をするスクリプトファイルを作りなさい
・オレ回答
perlのコマンドラインは perl -e "コマンド名"だったので、
perl -e "print -0.123;"
とやればOK! スクリプトは
print -0.123;
でOKなはず。実行してみると無事OK
・問題2 次のスクリプトはちゃんと実行できますか?
print 1
23;

・オレ回答
うーん、自由型なので無事に動くんじゃない? ということでスクリプトを書いて実行してみると…
Number found where operator expected at 1.1.2.pl line 2, near "23"
(Missing semicolon on previous line?)
syntax error at 1.1.2.pl line 2, near "23"
Execution of 1.1.2.pl aborted due to compilation errors.

とエラー表示がでて動かない。オプション値は「123」だが、スペースが入ったためエラーになったようだ。
・問題3 次のスクリプトはちゃんと実行できますか?
print 123,456,
678;

・オレ回答
さっきと似ているが、カンマでオプション値が切れている。確か複数のオプション値を指定するときはカンマで切るので、これはきちんと動くんじゃないかな。というわけで、実行してみると、
$ perl 1.1.3.pl
123456678