sironekotoroの日記

Perl で楽をしたい

Perlの絵本 第1章、第2章

Perlの絵本

  • 結城先生の「Perl言語プログラミングレッスン」が終わったので、買いためているPerl本の中から次の本をチョイス。
  • CGIの手前まで読み進めてた「Perlの絵本」に決定。
  • Perlの絵本」は、本屋で見たとき、これ以上優しいPerl本は無かろう、と思って購入。
  • 一読して、だいたいわかった気にはなった。
    • でも、実際に本を片手にコード書いたことがなくて引っかかってた
    • この本に書いていることはしっかり把握しておきたい(初心者向けの本だし・・・)

Perlの絵本 Perlを始める前に

  • 買いためているPerl本のほとんどがWindowsPerl環境作るところにページ割かざるを得ないのがつらいところだよなぁ。
  • その点、Perl入学式はVirtualPCubuntu入れるかMac環境って割り切りが良かったと思う。
  • javascriptのjsdo.itみたいなサイトのPerl版があればなぁ、とも思ったりする。

Perlの絵本 第1章

  • リテラル・・・って特に意識せずに過ごしてきたけど、何者?って訳でwiki先生にお尋ね。
  • リテラル - Wikipedia (http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB)

    コンピュータプログラミングにおいてリテラルは、ソースコード内に値を直接表記したものをいう。数値、文字列、関数などさまざまな型のものが存在し、それぞれの表記方法も言語によって異なる。即値ともいう。

  • なるほど
  • printfって使ってなくて使おうとも思ってなかったから、いざ書いてみると新鮮。
    • やっぱ読むだけではダメだよなー
# 整数を10進数で表示指定された桁数で表示。桁が無いところは空白。
printf("%5d\n",12345); #12345
printf("%5d\n",1234);  # 1234
printf("%5d\n",123);   #  123
printf("%5d\n",12);    #   12
printf("%5d\n",1);     #    1

# 整数を10進数で表示指定された桁数で表示。空白は0埋め
printf("%05d\n",12345);#12345
printf("%05d\n",1234); #01234
printf("%05d\n",123);  #00123
printf("%05d\n",12);   #00012
printf("%05d\n",1);    #00001

# 小数点以下の桁数を指定
printf("%.5f\n",3.141); #3.14100
printf("%.4f\n",3.141); #3.1410
printf("%.3f\n",3.141); #3.141
printf("%.2f\n",3.141); #3.14
printf("%.1f\n",3.141); #3.1

Perlの絵本 第2章 演算子

  • 余裕余裕・・・とか思わず、コツコツと

+,-,. は優先順位が同じため、()が必要

print "5+5=".5+5."\n" # エラーになる
print "5+5=".(5+5)."\n" # エラーにならない
print "5+5=",5+5,"\n" # エラーにならない
  • 前値インクリメントと後値インクリメント
$x = $a = 1;
print "\$a = $a","\n";
print "\$x = $x","\n";

print "前値のインクリメント演算子(++\$a)","\n";
# ++でインクリメントされ、$aが2になり、それが$xに代入される
print '$x = ++$a',"\n";
$x = ++$a;
print "\$a = $a","\n";    # $a = 2
print "\$x = $x","\n";    # $x = 2

$x = $a = 1;
print "\$a = $a","\n";
print "\$x = $x","\n";

print "後値のインクリメント演算子(\$a++)","\n";
# $aが$xに代入され、そのあとに$aがインクリメントされて2になる
print '$x = $a++',"\n";
$x = $a++;

print "\$a = $a","\n";    # $a = 2
print "\$x = $x","\n";    # $x = 1

print "文字列のインクリメント(1文字:A)","\n";
my $str = "A";
print "\$str = $str","\n";
print "\$str++","\n";
$str++;
print "\$str = $str","\n";    # B


print "文字列のインクリメント(1文字:Z)","\n";
$str = "Z";
print "\$str = $str","\n";
print "\$str++","\n";
$str++;
print "\$str = $str","\n";    # AA 

print "文字列のインクリメント(文字列)","\n";
$str = "ABC";
print "\$str = $str","\n";
print "\$str++","\n";
$str++;
print "\$str = $str","\n";    # ABD

print "文字列のインクリメント(2バイト文字)","\n";
$str = "あ";
print "\$str = $str","\n";
print "\$str++","\n";
$str++;
print "\$str = $str","\n";    # 1

print "文字列のデクリメント","\n";
$str = "A";
print "\$str = $str","\n";
print "\$str--","\n";
$str--;
print "\$str = $str","\n";    # -1
  • 今日は第二章まで

SublimeText2 矩形貼付け

  1. 矩形選択して、コピーする
  2. 貼付け先を矩形選択してペーストする
  3. すばらしい!

マークアップエディタにMouを利用

  • はてなブログのブログ作成画面だと、いったんプレビューしないと完成イメージが出ないので、Mouを投入
  • 2ペインの画面でマークアップの結果がすぐに反映されてはかどりそう。

[艦これ]少将になりました

  • 随分と長くやってるなー