sironekotoroの日記

Perl で楽をしたい

独習Perl 第2版 第5章 正規表現 , 第6章 関数

独習Perl 第2版 第5章 正規表現

みんな大好き正規表現

  • 他のPerl初心者向け本でも扱っているので、大枠は把握
    • 掘り下げると底なしという事はわかる
  • でも、以下のスクリプトは知らんかった。正規表現ではなく、後置のwhileとでも言うか
    • なお、パターンマッチ修飾子のgを消すとループします
      • もちろんやった
my $string = "ABCDEFABCDABC";

print "before:", $`, "\n", "match:", $&, "\n", "after:", $', "\n", "---", "\n"

    while ( $string =~ /ABC/g );

独習Perl 第2版 第6章 関数

6-1 文字列処理関数

  • print
  • printf
  • sprintf 整形した結果を変数に入れる際に利用
  • split
  • join
  • chop
  • chomp
  • length

6-2 数学関数

  • sin
  • cos
  • tan2
  • sqrt
  • int
  • rand
  • exp
  • log
# さいころを振って、その数の偏りを見る
my $max = 10000;
my $saikoro;
foreach ( 1 .. $max ) {
    ;
    $saikoro->{ int( rand(6) + 1 ) }++;
}

#print Dumper $saikoro;

foreach (sort keys %$saikoro){
    print $_,':',$saikoro->{$_},'(',$saikoro->{$_} / $max * 100,'%',')',"\n";
}

6-3 時間関数

  • time
  • gtime グリニッジ標準時
  • localtime PCに設定された地方時間をかえす

6-4 その他

  • eval 評価対象の命令を文字列として与える
my $input_number = -16;
eval("print sqrt \$input_number");
print $@ if ( $input_number < 0 );
  • sort
  • reverse
  • pack
  • unpack
  • sleep