すべての標準Perlコマンドが標準Perlコマンドリストにリストされているわけではありません。これは初心者にとって大きな混乱であり、初心者system
がPerlで直接実行できることを実行するために多くのコマンドを使用するのを目にする主な理由です。
そのコマンドにPerlモジュールを含めると、多くのPerlコマンドを使用できます。たとえば、ある場所から別の場所にファイルをコピーしたいがcopy
、標準関数としてリストされているPerlコマンドがないとします。多くの人がこれを行うことになります:
system ("cp $my_file $new_location");
File::Copy
ただし、欠落しているコピーコマンドを含むと呼ばれる標準のPerlモジュールがあります。
use File::Copy;
copy ($my_file, $new_location);
モジュールはPerlに含まれていますが、モジュールとそのFile::Copy
使用方法について知っておく必要があります。残念ながら、それらはPerlの主要な部分ですが、多くのPerl初心者向けの本には含まれていません。
私はあなたの混乱があなたがPerlでいくつかのコマンドを探していてそれを見つけられないという事実から来ていると思います。ただし、Time :: Pieceモジュールは、日付操作に使用されるPerl5.10以降の標準のPerlモジュールです。残念ながら、これはオブジェクト指向モジュールであり、オブジェクト指向Perlに精通していないユーザーにとっては構文が少し奇妙になる可能性があります。幸いなことに、使い方はとても簡単です。
オブジェクト指向プログラミングでは、データを含むオブジェクトを作成します。オブジェクト自体を簡単に表示することはできませんが、データのすべての機能が含まれており、さまざまなメソッド(基本的にはサブルーチン)を使用してそのオブジェクトに関する情報を取得できます。
最初に行う必要があるのは、日付の時間オブジェクトを作成することです。
my $time_obj = Time::Piece->strptime("20130227", "%Y%m%d");
今、$time_obj
あなたの日付を表します。は20130227
日付文字列を表します。は%Y%m%d
文字列の形式を表します(YYYYMMDD
)。残念ながら、Time::Piece
ドキュメントにはフォーマットの仕組みが記載されていませんが、フォーマット文字はUnixのstrftimeマンページに記載されています。
時間オブジェクトを取得したら、あらゆる種類のメソッド(別名サブルーチン)を使用してクエリを実行できます。
if ( $time_obj->day_of_week == 1 ) {
print "This is a Monday\n";
}
ドキュメントを読んで試してみてください。