プロが教えるわが家の防犯対策術!

まだCGIを勉強はじめのなのですが、localtimeについて質問させてください。
書籍で時間取得には
($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time);
とし、time関数で得たものをlocaltime関数で整形
といった事が書かれています。

まずわからないのが最初の
($sec,$min,$hour,$mday,$mon,$year,$wno) =
の部分なのですが、カッコ内に変数を並べるというのはどういった命令なのでしょうか?書籍ではここまででこのような使い方や記述は出てきていないので、それ自体がよく理解できずにいます。それとも($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time);をおきまりパターンとしてワンセットで覚えるべき事なのでしょうか。

続いてlocaltime(time)ですが、これは()内のtime関数によって取得された1970年基準からの秒数を、localtimeによって英語圏での標準的な日付時間表記に直して表示するという事で良いのですよね?
これが、なぜ ($sec,$min,$hour,$mday,$mon,$year,$wno) とすることで各変数に割り振ることができるのかがよく分かりません。

これらはおきまりパターンとして覚えるべき事なのでしょうか?それとも配列のようにあるパターンに乗っ取って書かれ得いる事で他に応用がきくような意味合いのものなのでしょうか?

ご教授いただきたく思います。
よろしくお願いします。

A 回答 (2件)

まず( )に変数を並べたものですがこれはリスト(list)と呼ばれるものです。


でリストとは何かですが配列の内容を並べて表記したものと考えればよいでしょう。
逆に言えば配列はリストを1個の変数で表したものといえますね。
@times = ($sec,$min,$hour,$mday,$mon,$year,$wno);
次にlocaltime( )ですがこれは引数の値を9個のリストとして返す関数です。
質問では7個のリストで受け取っていますが余った分は無視されます。
ちなみに残りの2個は年内の通し日数と夏時間かどうかです。
    • good
    • 0

> localtimeによって英語圏での標準的な日付時間表記に直して表示するという事で良いのですよね?


それはスカラーコンテキストでの動作です。

リストコンテキストでの動作は違います。
http://www2u.biglobe.ne.jp/~MAS/perl/ref/localti …
http://www.site-cooler.com/cgi-bin/kansuu.cgi?la …

# Perlでは、コンテキストによって関数が返す値を変えることができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!