Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 標準関数
  3. here

time関数 - エポックから現在までの経過秒数を取得

time関数を使用すると、エポックから現在までの経過秒数を取得することができます。エポックとは時刻の基準となるある時点のことです。多くのシステムでは、協定世界時の 1970年1月1日0時0分0秒00:00:00がエポックとなります。

my $sec_from_epoch = time;

time関数を使用するとエポックから数えた秒数を取得することができます。この秒数はうるう秒が考慮されていないので実際の時刻と少しの誤差があります。(うるう秒とは毎年地球の自転が遅れるために数年に一度時刻の調整のために挿入される秒のことです。)

日付・時刻に関する一般的な情報については、以下を参考にしてください。

エポックとは

エポックとは時刻の基準となるある時点のことです。多くのシステムでは、協定世界時の 1970年1月1日0時0分0秒00:00:00がエポックとなります。

時刻の範囲

32bitのマシンにおいてはエポックを基準として、-2,147,483,648秒~2,147,483,647秒までの時刻を表現することができます。

日付に直すと(協定世界時で)1901年12月13日(金)20時45分52秒から2038年1月19日(火)3時14分7秒までとなります。 この範囲を超える時刻の計算はPerlの標準関数では行うことができません。

time関数のサンプル

time関数を使ったサンプルです。

use strict;
use warnings;

# エポックから現時点までの経過秒数を取得する
my $sec_from_epoch = time;

print "$sec_from_epoch sec\n";
  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。