1人Perl入学式 #2
概要
Rails完全に理解する予定だったが諸事情でPerlが一切わからないのにYAPC::Tokyo 2019に参加することになったのでPerlをやっていきます.
参考
github.com 沖縄の学生の間で大人気のこれでやっていく.
事前
特に今回の構文基礎というところでいちいちファイルを保存するのがめんどくさいのでインタラクティブモードみたいなのがないのかぐぐった.昔はせっせと.cなど書いていたのに….
root@788dcc3faa9b:~/perl-entrance# cpanm Devel::REPL
・
・
・
77 distributions installed
root@788dcc3faa9b:~/perl-entrance# cpanm Term::ReadLine::Perl
・
・
・
Enter arithmetic or Perl expression: exit
OK
Successfully installed Term-ReadLine-Perl-1.0303
re.pl
で起動して挨拶できたので多分ちゃんと入ったんでしょう….
変数
謎の記号$
は変数であることを示す記号らしい.謎の記号だと思っていたけど簡単だった.
シングルとダブルクォートでエスケープするしないはRubyでも見た気がする.忘れそう.
my
は型宣言の代わりに書くと理解しておこう….
スカラ変数完全に理解した.
標準入力
scanf
でもinput
でもなくPerlの標準入力はmy $hoge = <STDIN>;
でいけるらしい.分かりやすくていい気がする.
chomp
で末尾の改行をなくす話は対話モードではよくわからなかったけどイメージはつくので覚えておくに止めます.
四則演算
文字列連結.
だけは馴染みがない概念な気がした.あとはきっと大丈夫でしょう….
if else文
if () {
}
にすごい懐かしみを感じる….
文字列の演算に特別な演算子があるということ,間違った比較が無理やり通っちゃうところはハマりそうな感じがした.true
とfalse
がないのにびっくり.
論理演算子
完全に理解した.
for文,配列
謎の記号@
完全に理解した.配列の要素にアクセスするときは@
が$
になるのむずすぎない….
my @array1 = ( 1, 2 );
my @array3 = ( @array1, 3 ); #=> (1, 2, 3)
これ1次元配列になるなら2次元配列ないんか?と思った調べたらリファレンスという名前でちゃんとあるらしい,そりゃそうですyね.
perlのfor文の回数指定がなんかやりづらい気がする…毎回my $hoge (..)
書くのか….
と思ったけどfor i in range()
やらfor(int i=0, i<n, i++)
書くのと労力は大差ないか.
FizzBuzz問題にチャレンジ!!した.けどここまでの知識で書いたコードを乗っけるのも恥ずかしい.
落ち穂拾い
for文はC風にかけたりもするらしい.これがティムトゥーディーですか?
終わりに
Perlのコード目にしたとき$
と@
が謎の記号だなーって思ってたんですが謎が解けました.
第2回完全に理解した.