職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

時刻で変化する画面--CGI

2018年02月24日 | perl
時刻で変化する画面--CGI

【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にインストール済み
CGIを使用する時は、必ずApachを起動する

【時刻で変化する画面】
■ブラウザ画面



□CGI スクリプト「time.cgi 」


【解説】
1)配列の宣言と初期化
my @msg = ('ぐーぐー', 'おはよう', 'こんにちは', 'こんばんは');←宣言と初期化をしている。
@msg は 配列を示す。更に、@msg 配列の4要素は$msg[0]、$msg[1]、$msg[2]、$msg[3] として表せられる。よって
$msg[$n1]の$n1 が 1 であれば、 $msg[1] は 'おはよう' ですから、「おはよう」が表示される。

2)時間処理の関数
配列をリスト形式で受け取る
($sec, $min, $hour, $day, $mon, $year, $wkday) = localtime(time);
localtime()はtime関数形式の時間をローカル時間に変換している

「月」 は 0~11 の数字で表されており、「曜日」 は 0~6 の数字で表されていることです。日本では、1月、2月、・・・ また 日曜、月曜、・・・ といいますが、英語圏では、Jan, Feb, ・・・ また Sun, Mon, ・・・ というように呼び方が異なるため、ユーザー側で任意に処理できるように数字で返しているのです。日本では 「月」 を数字で表しているので、 $mon++; でインクレメント演算するだけで済みます。「曜日」 を表すのはすこし厄介で、配列 @youbi を定義して、$wkday が 0 であれば$youbi[$wkday] で '日' を表すようにしています

「年」 は、1900 を足したときに西暦となる数字が返されます。そのため、11行目で $year += 1900; の演算を行っています。

3) int 関数
$n1 = int($hour/6); について
$hour は、現在の時間を表す 0~23 の何れかの値です。この $hour を 6 で割る演算を $hour/6 で行い、その演算結果を int 関数に引数として渡す。 int 関数は、与えられた引数の小数点以下を切り捨てて整数を返し、値は変数$n1 に代入される。

4)ヒアドキュメント
print <
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« CGIの書き方/perl | トップ | CGIのif・forの例文 »
最新の画像もっと見る

コメントを投稿

perl」カテゴリの最新記事