タグ

perlとtrapに関するkiyo_hikoのブックマーク (5)

  • 第15回 DateTime:APIの標準化をめざして | gihyo.jp

    Cから継承したAPI プログラマにとって、ログの解析や作成などに含まれる日付や時刻の操作は切っても切り離せない分野のひとつです。もちろんPerlにも日付や時刻を操作するための関数は組み込まれています。 ただし、Cから継承してきたlocaltime()やgmtime()の返り値は、お世辞にもわかりやすいとはいえません。リストコンテキストで呼び出せば年月日、時分秒などの値を取り出せるとはいえ、単一の配列で受け取ると、個々の要素を使うときに直感的ではなくなりますし、明示的な名前をつけたスカラー変数を並べて受け取るのはいかにも冗長です。 use strict; use warnings; # 短いけれど非直感的 my @tm = localtime(); $tm[5] += 1900; $tm[4]++; printf "%04d-%02d-%02d %02d:%02d:%02d\n", reve

    第15回 DateTime:APIの標準化をめざして | gihyo.jp
    kiyo_hiko
    kiyo_hiko 2012/04/04
    localtimeが2種類あったとは…。構造体を返してくる方を知らなくて、嵌った。しかも構造体のソース読むと、structでmapしただけのソース (5.8.1) 。いらねー / Time::Pieceはメソッドとしてstftimeを持っているらしい有用っぽい
  • 条件演算子 - Wikipedia

    条件演算子(じょうけんえんざんし、英: conditional operator)は、プログラミング言語の演算子で、条件文と同様な意味があるが、文ではなく値を持つ式になる。評価されると、条件式の値により異なる式が評価され、異なる値になる。 なお、C言語やC++など一部のプログラミング言語において、条件演算子とは後述する「? :」(ハテナマークとコロン) の演算子の名称である。 「If 〜 Then 〜 Else 〜」にあたる三項演算子があり、ほぼ唯一の、プログラミング言語において一般的な三項演算子である。また「If 〜 Then 〜 if」にあたる二項演算子もある。 三項演算子は、条件式・真式・偽式の3つのオペランドを結ぶ。二項演算子の場合は、条件式と、真式または偽式のいずれかの、2つのオペランドを結ぶ。 条件文との違いは、 真式・偽式は式(条件文における節のように文を置くことができない)

    kiyo_hiko
    kiyo_hiko 2012/02/15
    「CやJavaやPerlなどでは、a ? b : c ? d : e は a ? b : (c ? d : e) という意味だが、PHPの三項演算子では (a ? b : c) ? d : e なので注意が必要である」…なぬ。自分は条件演算子をcondやCASE代わりに多用するので、これは気を付けないと
  • バッファリングとは - Perl入門ゼミ

    Perl › ファイル入出力 › here Perlの出力関数であるprint関数は、バッファリングを行います。バッファリングとは「データを貯めておく」という意味です。Perlのprint関数は実際に呼び出されても、即座にファイルに内容を書き出しません。書き込み内容をバッファリングしておいて、バッファがある容量をこえると実際にファイルに書き出します。 バッファリングを無効にしたいという場合は、以下の記事をご覧ください。 バッファリングを無効にする 以下はバッファリングを実感するサンプルです。すぐにはファイルに書き込まれないことがわかると思います。 use strict; use warnings; # 書き込み用のファイル( 上書きするので注意 ) my $file = "sample20080811.txt"; open(my $fh, ">", $file) or die "Canno

    バッファリングとは - Perl入門ゼミ
    kiyo_hiko
    kiyo_hiko 2011/11/26
    ハンドルを閉じると書き出される話など。このへんはたまに失念するのでメモ。 see:http://www.nishishi.com/blog/2006/05/perl_buffer_flu.html
  • Perl:[timegm/timelocal]で「年」引数の仕様の正しい理解と使い方について

    Perl : [ timegm / timelocal ] で「年」引数の仕様の正しい理解と使い方について ~ [ 祝日ロジック( Perl )へ戻る ] (補)  ~ この問題で影響を受ける範囲 ~ [ 2011/3/24 追記 ] 「1900年代の日付([$year-1900]=0~99 になる)を使う事は絶対に無い」という場合には、この問題に 抵触しませんので、[$year-1900] の使い方を続けても全く支障ありません(2000年代以降の日付ならば [$year-1900]の値が3桁になりますので、timegm/timelocalに[1900年からのオフセット]として解釈 して 貰えます)。 「カレンダーツール・日付に関する関数」等の開発に際して、1999年以前もカバーするという仕様を検 討する場合には、この問題に注意を払ってください。引数をエポック秒で受け取る仕

    kiyo_hiko
    kiyo_hiko 2011/09/28
    どうもtimelocalがトンチンカンな結果しか返さなくてPerlェ・・・とキリキリしていたら、巷で言われてる「1900引け」という話自体がウソ子だった。なんだかなあ
  • Ruby の warining: useless use of 〜 in void context - miau's blog?

    kiyo_hiko
    kiyo_hiko 2011/04/20
    input.sortに副作用を期待したコードなら副作用がないから警告が出てくれたほうがうれしいけどRubyだとsortはArrayのメソッドでしかないから出てくれないとか。useless use~警告は確かに嵌りがちなところなので気をつけたい。
  • 1