時間、曜日を判定して、時間ごと、曜日ごとに違ったテキストを表示させたいのですが、perlはどう書けばいいんでしょ?まったくわかりません。すみませんが教えてください。

A 回答 (3件)

こんな感じです。


----- ソース開始 ----
#!perl

print "Content-type: text/html\n\n";

($sec, $min, $hour, $mday, $mon, $year,$wday, $yday, $isdst) = localtime(time());
if($hour>=6&&$hour<12){ #6~11時台
print "おはようございます";
}
elsif($hour>=12&&$hour<18){ #12~17時台
print "こんにちは";
}else{ #その他
print "こんばんは";
}

print "<BR>\n";

if($wday==0){
print "日曜日です";
}elsif($wday==1){
print "月曜日です";
}elsif($wday==2){
print "火曜日です";
}elsif($wday==3){
print "水曜日です";
}elsif($wday==4){
print "木曜日です";
}elsif($wday==5){
print "金曜日です";
}else{
print "土曜日です";
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
このような文だと、初心者にもとってもわかりやすく理解ができます。
大変参考になりました。

お礼日時:2001/07/12 15:56

timeをlocaltimeで曜日や時分に分解して、


それをifで判定すれば、できると思います。

参考URL:http://tohoho.wakusei.ne.jp/wwwperl2.htm
    • good
    • 0
この回答へのお礼

localtimeを調べて勉強します、ありがとうございます。

お礼日時:2001/07/12 16:36

まったくわかりませんではかわりにやってくださいと一緒じゃないですかね。



以下のサイトで探せば見つかると思います。
挨拶文を切り替えるcgiなどがあれば改造すればすぐに曜日などにも対応できると思います。

参考URL:http://www.i-say.net/cgi/

この回答への補足

 私はそのような、いわゆる不愉快な発言を求めているわけではありません。
質問を閲覧した方のできる範囲、時間が許す範囲での回答を求めています。
お忙しい方はもちろんですが、それ以外の馬鹿馬鹿しくて答えられない、という方には答えて頂かなくって結構です。
つまらない質問、舌足らずで説明不足の質問に、わざわざ答えて頂いた方々、その方に対し、いわゆるマスターポイントという形でお礼をさせて頂いてます。
 ポイントだけでは、まだまだお礼が足りないとは思いますが、このサイトの規約ではそういった形でしかお礼ができません。
 つまり、みなさまの善意によって回答を頂いていると、私は理解しております。

 回答を頂いた方、解決の糸口を提供して頂いた方、大変ありがとうございます。

補足日時:2001/07/12 16:04
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Q英語の読み方

日本語は一文字で一つの読み方でわかりやすいのですが英語には読み方の決まりはあるのでしょうか?あるのであれば読み方を詳しく書いているサイトや本、もしくはここに書いてくれると嬉しいです

Aベストアンサー

「えいごのよみかたの」でグーグル検索しかけたら「英語の読み方のルール」の検索結果がたくさんヒットしました。これなんか、どうでしょう。
http://www.uda30.com/bay/Spell-Yomi/Spell-Yomikata.htm

Qテキストエリアにテキストファイルを改行コードごと読み出すには

ただ今勉強中のCGIを使って、テキストファイルの編集・上書き保存をテキストエリアから行いたいのですが、テキストエリアに読み込む時に改行コードが読み込めないためか、最後の一行しか表示できません。どのようにすると、改行コードを含めて編集できるのでしょうか?
その「できないコード(サブルーチン)」は↓になります。

$commentfile = "comment.txt";

■ 読み出し
sub read_commentfile
{
local($masg);
open(IN, $commentfile);
while (<IN>) {$masg = join('',$_);
       $massage = $masg;
}
close(IN);
}

■ コメントの編集画面
sub comment
{
local($html);

&read_commentfile;
#HTML作成
$html = << "EOM";
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=$charset">
<title>コメントの編集</title>
</head>
<body>
<form action="$self" method=post>
<input type=hidden name=mode value="savecomment">
<hr>
コメント<br>
<textarea name=masg cols=40 rows=4>$massage</textarea>
<br>
<input type=submit value=" 更新 ">
</form>
<hr>
</body>
</html>
EOM
&print_html($html);
}

■ 上書き保存
sub savecomment
{
local(@text);
push(@text, "$FORM{'masg'}\n");
open(OUT, ">$commentfile");
print OUT @text;
close(OUT);
}

本来でしたら、ファイルのロック・解除、表ダグ、パスワード等の記述もあるのですが、省いてあります。
よろしくお願い致します。

ただ今勉強中のCGIを使って、テキストファイルの編集・上書き保存をテキストエリアから行いたいのですが、テキストエリアに読み込む時に改行コードが読み込めないためか、最後の一行しか表示できません。どのようにすると、改行コードを含めて編集できるのでしょうか?
その「できないコード(サブルーチン)」は↓になります。

$commentfile = "comment.txt";

■ 読み出し
sub read_commentfile
{
local($masg);
open(IN, $commentfile);
while (<IN>) {$masg = join('',$_);
       $massage ...続きを読む

Aベストアンサー

while (<IN>) {$masg = join('',$_);
       $massage = $masg;
}
そもそもこのループで何をしたい?
と言うか何をしているのかわかっていますか?
それがわかれば自ずとどうすればいいのかわかるはずです。

Q英語の読み方をカタカナで書くことについて

英語の単語の読み方をカタカナで読み方を書く人がよくいますよね?
たとえば

run ラン

こういった行為はよくないといわれていますなんででしょうか?

またカタカナで読み方を書くのではなくアルファベッドのローマ字読みで読み方を書くという行為もありますがこれはいいのでしょうか?

Aベストアンサー

少し、私も知っていることを言わせていただきます。
ソシュールの教えの中に、「シニフィアン」と「シニフィエ」という言葉があります。
「シニフィアン」とは、表記されたものという意味で、「シニフィエ」とは、その意味を持つ概念を表します。

>run ラン

>こういった行為はよくないといわれていますなんででしょうか?

そんなことは、誰が言ったのしょうね。単に、英語学習の権威付けだけではないでしょうか。
一部の人は、メディアによる吹き込みで、誤解があるのでしょう。

ソシュールの理論からすれば、おかしな話なのです。発音記号で?って、音声学の専門教育を受けた人が、国際音声記号(IPA)で書けるならともかく、別に、一般の発音記号などで表記しても、厳密性などはありませんね。日本人には違う音に聞こえても、英語ネイティブには同じに聞こえるらしいのですが、国際音声記号では、絶対に違う表記になります。

日本語でも、「ん」の表記はされていても、様々な音声を持っています。その違いを日本人自身は、特別な訓練をしなければ、認識できません。当然、ローマ字表記でもカバーすることはできません。私は、英語の発音を何度も調べてみましたが、違う音声なのに、同じに表記される発音記号は多くありますから、何を以って、カタカナ表記が悪いとするのか分かりません。場合によっては、カタカナ表記の方が正確かもしれません。

Wyswyg (what you see is what you get)という言葉がありますが、これをもじって、Wylwyg(what you listen [for] is what you get)ではないでしょうか?あなたの聞いたものが、本当なんだろうと思います。
つまり、音声言語である限りは、どんな表記であろうが、表記自体に何の罪もありません。聞いたことがないものは、発音記号であろうが、国際音声記号(IPA)であろうが、フォニックスであろうが、ハングルであろうが、再現できなければ何の役も立ちません。

究極的には、相手に、自分の意味している音声が通じるかどうかの問題で、有名な同時通訳の人の本でも、英語のカタカナ表記はされています。それが、結構、通じるのです。

「上杉謙信」が、" West Kensington"として通じたでも、それは、それで、Communicable なら良いのだと思います。日本語の発音で何が悪いのでしょう。相手が意味が取れないとなって、始めて、相手とのコンセンサスが取れる発音をするわけで、表記(シニフィアン)に問題があるわけではありません。表記を限定するということには、何か、英語教師の欺瞞が隠されているように感じます。

神経質な英語ネイティブの教師にあたれば、意味は通じていたのに、あれこれ上から目線で文句を言われるかもしれませんし、『なんで英語をやるの』の著者の中津燎子氏のように、英語そのものの有効性を無視して、自分が認める範囲の発音でない生徒なら、即刻ダメだしして、もう教えないという教師もいるかもしれませんが、本当に、英語をコミュニケーションのツールとして考えるなら、そのような配慮はいらないはずです。一方では、英語はグローバルな言語と位置づけながら、もう一方で、米国発音を強要するというのは、矛盾しているように思います。そうした、米国による英語至上主義はやめたほうがよいと思います。

少し、私も知っていることを言わせていただきます。
ソシュールの教えの中に、「シニフィアン」と「シニフィエ」という言葉があります。
「シニフィアン」とは、表記されたものという意味で、「シニフィエ」とは、その意味を持つ概念を表します。

>run ラン

>こういった行為はよくないといわれていますなんででしょうか?

そんなことは、誰が言ったのしょうね。単に、英語学習の権威付けだけではないでしょうか。
一部の人は、メディアによる吹き込みで、誤解があるのでしょう。

ソシュールの理論からすれば、...続きを読む

QPerlのCGIでフォームのテキスト配列をPerlで取得するには?

フォームで通常は同じ名前のデータを取得することは無いのですが
表計算のように同じ名前の場合、データの取り出し方がわかりません。
以下、通常の1件の場合のソースです。


#!/usr/bin/perl

$| = 1;

use strict;
our %in;

use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
require 'jcode.pl';
require 'cgi-lib.pl';
#

#-----分岐-----

&ReadParse;

# 配列でない場合
my $namae = $in{'namae'}
print "$namaeで名前が1件表示される";
# これをフォームで namaeが配列になった場合、
#<input type="text" name ="namae">
#<input type="text" name ="namae">
#<input type="text" name ="namae">
# のような場合、3件取得する場合

exit;

__END__

フォームで通常は同じ名前のデータを取得することは無いのですが
表計算のように同じ名前の場合、データの取り出し方がわかりません。
以下、通常の1件の場合のソースです。


#!/usr/bin/perl

$| = 1;

use strict;
our %in;

use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:standard);
require 'jcode.pl';
require 'cgi-lib.pl';
#

#-----分岐-----

&ReadParse;

# 配列でない場合
my $namae = $in{'namae'}
print "$namaeで名前が1件表示される";
# これをフォームで namaeが...続きを読む

Aベストアンサー

パラメータのデコード処理で使用するモジュールによって、やり方は変わってきますが、cgi-lib.pl と CGI.pm の場合は下記のようになります。

cgi-lib.pl :
 対象のパラメータが収納された変数を \0 を区切り文字として分割する。

CGI.pm :
 リストコンテキストで値を受け取る。


例) cgi-lib.plを使う場合 ----------------------------
require "cgi-lib.pl";

&ReadParth; # デコード処理
@hoge = split(/\0/, $in{hoge}); # \0 で分割
------------------------------------------------

例) CGI.pmを使う場合 --------------------------------
use CGI;

$query = new CGI; # 新しいCGIオブジェクトの作成
@hoge = $query->param('hoge'); # パラメータhogeの内容の受け取り
------------------------------------------------

参考URL:http://www.futomi.com/lecture/form/cgilib.html#3.2,http://member.nifty.ne.jp/hippo2000/perltips/Cgi.htm#FETCHING_THE_VAL

パラメータのデコード処理で使用するモジュールによって、やり方は変わってきますが、cgi-lib.pl と CGI.pm の場合は下記のようになります。

cgi-lib.pl :
 対象のパラメータが収納された変数を \0 を区切り文字として分割する。

CGI.pm :
 リストコンテキストで値を受け取る。


例) cgi-lib.plを使う場合 ----------------------------
require "cgi-lib.pl";

&ReadParth; # デコード処理
@hoge = split(/\0/, $in{hoge}); # \0 で分割
---------------------------------------...続きを読む

Q英語の読み方

英語の読み方を説明や教えてくれるホームページなどがあったら、教えてください。               
もしない場合は「palaces」の読み方だけでも教えてください。

Aベストアンサー

「フォニックス(phonics)」で検索すると、色々出てくるんじゃないでしょうか?

日本語には50音表があり、基本的に全ての単語が50音表の音だけでできています。他の音は使いません。

他の言語も同様で、英語の場合、フォニックスとか42 SoundsとかPV法とか言い方は色々ありますが、全ての単語がその音だけでできています。他の音は使いません。

(言語学で言うと「音韻」と言います。)

例えば、方言にもよりますが、一般米語の母音はこの表の13(14?)母音だけです。他の音を使ってはいけません。
http://www.americanaccent.com/vowel_chart.swf


又、英語のつづりは日本人が思っているほどめっちゃくちゃではありません。しっかりしたルールがあるます。

母音なら、
a,e,i,o,uの5文字にそれぞれ2種類の読み方があります。これで10通り。
加えて、oi,ou,ooの二重音字(2文字で1音)が3つ、計13母音です。

例えばaという字は[ei]か「ae]の2種類の読み方があります。つづり字でaを見たら、まずこの二つのどちらかを疑います。
例:[ei]で読む単語はmake、take、hate等
[ae]で読むのはapple、bad、dad、stand等

ただ、日本語も英語も、「アクセント」の位置が重要な言語ですが、日本語と英語の決定的な違いは、英語は基本的に「アクセントのある母音だけつづりのルール通りに読んで、
アクセントが無い部分は、つづりがなんであろうとuの発音(bus等のu)を弱めに発音したものになる」ということです。

日本語は例えば「赤」と「垢」のアクセントの違いは、「音程」ですが、英語は音程は別に変えなくてもいいです。でもこの「母音の読み方」を変えることが重要です。


palacesは、
アクセントの位置は1つ目のaです。
ということは、1つ目aだけルール通り[ei]か「ae]で読み(この単語の場合は[ae])、2つ目のaとeはアクセントが無いので、つづり字に関わらずuの発音になります。

読みどおりにつづると、
PAL-uh-suz
となります。

(uhはbusのu)。

「フォニックス(phonics)」で検索すると、色々出てくるんじゃないでしょうか?

日本語には50音表があり、基本的に全ての単語が50音表の音だけでできています。他の音は使いません。

他の言語も同様で、英語の場合、フォニックスとか42 SoundsとかPV法とか言い方は色々ありますが、全ての単語がその音だけでできています。他の音は使いません。

(言語学で言うと「音韻」と言います。)

例えば、方言にもよりますが、一般米語の母音はこの表の13(14?)母音だけです。他の音を使ってはいけません...続きを読む

QPerlでディレクトリごと削除したい

telnet.cgiを使って、カレントディレクトリで、
rm -rf *
を行っても、なぜか(permissin 755にも関わらず)permission denyといわれうまく削除できませんでした。
そこで、perlを使って削除を試みたいのですがどのようにすれば、削除できますか?

参考になりそうなソースを見つけたのですが、ディレクトリの中にディレクトリがある構造のためうまく削除できませんでした。
どなたか、改良していただけないでしょうか?
お手数ですが、宜しくお願い致します。




#!/usr/local/bin/perl

$dir = "./d/";

opendir DIR, $dir;
@files = grep { !m/^(\.|\.\.)$/g } readdir DIR;
close DIR;

$flag = @files;

if ( $flag ) {
foreach $file ( @files ) {
unlink "$dir$file";
}
}

rmdir $dir;

telnet.cgiを使って、カレントディレクトリで、
rm -rf *
を行っても、なぜか(permissin 755にも関わらず)permission denyといわれうまく削除できませんでした。
そこで、perlを使って削除を試みたいのですがどのようにすれば、削除できますか?

参考になりそうなソースを見つけたのですが、ディレクトリの中にディレクトリがある構造のためうまく削除できませんでした。
どなたか、改良していただけないでしょうか?
お手数ですが、宜しくお願い致します。




#!/usr/local/bin/perl

$dir = "./...続きを読む

Aベストアンサー

しつこくてスマン、、更に付けたし、、、

御判りかと思いますが
普通のISPなどパブリックなスペース上で、
ディレクトリを707などにすると
他のユーザーのCGIからも、あなたの方のディレクトリ内に
任意のfileを置くことが可能になりますので、気をつけてください

Q英語の文字の読み方についてお願いします。図々しいのですが、英語の読み方

英語の文字の読み方についてお願いします。図々しいのですが、英語の読み方を全て書いていただけませんか(サイトがあれば教えて下さい)。例:ja=ヤ,ジャ の用にjaで「ジャ」や「ヤ」と発音するみたいにお願いします。

Aベストアンサー

フォニックスやるのがいちばんいいんじゃないですか?

フォニックスって何?
http://allabout.co.jp/children/kidsenglish/closeup/CU20020620a/index.htm
http://www.genkienglish.net/phonicsj.htm

QテキストエリアのインプットをPerlプログラムへ

基本事項だと思うのですが質問させてください。

まず、HTMLファイル上に

<form method= "post" action ="http://localhost/test.cgi>
<textarea name ="story" cols="60" rows="10">
This is a test.
</textarea>
...
<input type="submit" name="submit_story" value="submit">

とプログラムを組みます。

その後、perlプログラムにテキストエリアの内容を送りユーザがsubmitボタンを押したときに HTMLファイルとして出力します。
そのPerlは以下のように組みました。
print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<head>\n";
print "<title>The test of CGI</title>\n";
print "</head>\n";
print "<body>\n";
$story = $_POST["story"];
print "<p><h3>Textarea says $story </h3></p>\n";
print "</body>\n";
print "</html>\n"; 

しかし、$storyは表示されませんでした。
どこがおかしいのでしょうか?
もしよければアドバイスをお願いします。

基本事項だと思うのですが質問させてください。

まず、HTMLファイル上に

<form method= "post" action ="http://localhost/test.cgi>
<textarea name ="story" cols="60" rows="10">
This is a test.
</textarea>
...
<input type="submit" name="submit_story" value="submit">

とプログラムを組みます。

その後、perlプログラムにテキストエリアの内容を送りユーザがsubmitボタンを押したときに HTMLファイルとして出力します。
そのPerlは以下のように組みました。
print "Content-type: t...続きを読む

Aベストアンサー

> $story = $_POST["story"];
これはPHPの書き方です。

「cgi perl フォーム」などで検索すれば、すぐに見つかると思いますが、
CGIモジュールを使って、以下でいいと思います。

use CGI;
my $html=new CGI;
my $story=$html->param('story');

GETとPOSTの違いはありません。

$in{'story'}という書き方はcgi-lib.plをキーワードに追加してみてください
モジュールを使うのではなく自分で取得する方法を知りたい場合は
「cgi perl サンプル」でどうぞ。

Q英語由来の外来語の読み方

例えば、アメリカ大統領のリンカーンの名前の読み方について、次の二通りをよく目にします。
(1)アブラハム・リンカーン
(2)エイブラハム・リンカーン

 (2)は、より英語の発音に忠実な読み方、と言えると思いますが、(1)のような読み方は、何か呼び方がありますか? 「ヘボン式」とは違いますか? 何か適切な呼び方があればそれをご教授頂きたいのと、ほかにもこのような例をご存じであれば挙げて頂きたいこと、それと、それに関する解説か、サイトの紹介などを、よろしくお願い致します。

Aベストアンサー

(1)は一般的に【ローマ字読み】といわれる類です。

http://www.ikeda19.com/como_leer.html

http://komachi.yomiuri.co.jp/t/2013/0217/574050.htm?g=08

QPerlの初歩の初歩の初歩(#!/usr/local/bin/perlについて)

いつもお世話になっています。
Perlを勉強し始めて1か月たっていない人間です。
調べてもよく分からず、気持ち悪いので
どうか教えてください。

Perlで記述するとき1行目にperlへのパスを書きますが
プロバイダでのパスは「#!/usr/local/bin/perl」です。
私のPC環境では「#!d:/perl/bin/perl」になります。

ある日、PC環境で動作検証するとき
間違ってプロバイダのパスのほうを記述してしまいました。
しかし、それでもPC上で動作しました。

なぜパスが違うのに動作するのでしょうか?

なお、わけの分からないまま
「Perlへのパスを通す」というのを昔
やったことがあります。関係がありますか?

ある場合、それをすると
「#!d:/perl/bin/perl」の「d:/perl/」の部分が
「/usr/local/」と同になるということなのでしょうか?

Aベストアンサー

httpdの種類や設定によっては1行目のパスを無視して動作させることが出来ます。
例えばAnHTTPDは最初からcgiの拡張子とperlを関連付けて使う仕様だった気がします。
Apache1.3(Win)もWindowsのOSでcgi拡張子とPerl.exeの関連付けがしてあれば動作させることが出来ます。


人気Q&Aランキング

おすすめ情報