• ベストアンサー

Time::Pieceについて

はじめまして。 perlにて、Time::Pieceモジュールを使った プログラムで質問があります。 my $obj = Time::Piece->new; my $num = $obj->epoch . $$ . time . int [ ] . rand 上のロジックで、2行目の、「epoch」をつかった部分 が、どのような事をしているのか理解できません。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

Time::Pieceについては、perldocを読むとわかります。 で、epochメソッドが何をしているのかというと「epochからの秒」を返すようです。 ちなみにepochは何なのかというと、ここで説明するよりも以下のURLの方が分かりやすいと思うのでそちらをどうぞ。 http://tehanu.hpcl.titech.ac.jp/time/utctai.html

参考URL:
http://tehanu.hpcl.titech.ac.jp/time/utctai.html
yokt
質問者

補足

回答ありがとうございます。 perldocにて調べてみたのですが、どうも英語が得意ではないので・・・・。 ご説明いただいた内容で、「epoch」についてはわかりました。 「$$ . time . int [ ] . rand」の部分はどのような 意味なのでしょうか。 「rand」は関数ということは分かるのですが、組み合わされているので、ロジックの解釈ができません。 よろしくお願い致します。

その他の回答 (2)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

> $tmp = substr($md5->add(Time::Piece->new->epoch . $$ . time . int [] . rand)->hexdigest, 0, 10) > ランダムに数値を発生させて、上10桁をとり、 > その値を、認証する際の値にするようです。 なるほど。 認証に使う種作りをしていたわけですか。 ・・・って途中を切らずに全文を掲示していただかないと回答者も困りますので、これから何か質問することがあれば(教えて!gooに限らず)、おしまずに必要最低限のことは書いてください。

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.2

$$はスクリプトを実行しているPerlのプロセス番号が入っている特殊変数。 timeは1970年1月1日00:00:00から現在時刻までの秒数。 intは小数点以下を切り捨てて整数部分を返す関数。(ここでは空なので0になる) randは0から引数に指定した数値までの乱数を発生させる関数。(ここでは引数がなぜかない?) あと行の終わりにも関わらず;(セミコロン)がないですがこれでほんとに一行ですか? このままいくと、いままで上げた上記のものをepochの返値といっしょに順番に繋げていってそれを$numに突っ込むだけです。 結局何がしたいのかは知りません。(w

yokt
質問者

補足

回答ありがとうございます。 「.」は結合子だったんですね。 ロジック全体はこのようになっております。 $tmp = substr($md5->add(Time::Piece->new->epoch . $$ . time . int [] . rand)->hexdigest, 0, 10) ランダムに数値を発生させて、上10桁をとり、 その値を、認証する際の値にするようです。