明日のタメに その1 (Perl使いへの道)
■ このスレッドは過去ログ倉庫に格納されています
0001ぴょん基地
NGNGということで、一番シンプルな Perl で書いた CGI を
まったくの初心者でも、動かせるようになるように・・・
最初の難関がこれだと思うし、最大の難関でもあると思う。
#!/usr/bin/perl
print "Content-type: text/plain\n\n" ;
print "2チャンネル";
exit;
あなたは、これを動かせますか? (つまずいたら、質問してネ)
0002名無しさん
NGNG拡張子を cgi で保存しましょう。
0003所謂ひとつのPerl野郎
NGNG「まったくの初心者」にはそれでも難しすぎると思いますよ。
そもそも一口に初心者といってもいろいろなレベルがあると
思うんですよ。たとえば、
プログラミングの初心者。
Perl の初心者。
CGI の初心者。などなど。
最後の人以外は、これを動かせますか?って聞かれたって
何をしていいのか途方に暮れると思います。実際、今の俺
ならそれくらい楽勝で動かせるけど、二年前、初めてPerl
をインストールしたときの俺には絶対、意味不明だったと
思う。
俺も一人の Perl 使いとして Perl 使いがもっと増えれば
良いと思うけど、正直こういう形では Perl 使いは育てら
れないと思う。そもそも2chは雑談や相談には向いてるけど
講座には向いていないと思うんです。
けちつけちゃってすいません。
0004ぴょん基地
NGNGそれにしても saki は・・・
0005名無しさん
NGNGHello,world! じゃないところが素晴らしいです。
日本語を使うならやっぱり日本語で表示テストをしたい。
始めたての頃、何を見ても「Hello,world!」だらけだったので
何か特殊な語句だと思いこんでいた恥ずかしい過去・・・。
0006密かに期待しています
NGNG0007名無しさん
NGNGまずは CGI より Perl と UNIX 自体を理解しないとお話にならないような。
Directory Permission 777 で置けとか言ってるのあるし。
0008名無しさん
NGNGもう忘れてしまっているのよネー
あっと言う間に、「あたりまえ」という感じになっちゃいます。
0009perl歴二日
NGNGSSIで呼び出すんですよね?
で、出力された方のHTMLに表示させる。
・・・perlって、とっかかりにくい・・・
0010ぴょん基地
NGNGhttp://www.aaa.co.jp/bbb/ccc/step.cgi
のように URL 欄に打ちこんで、で、2チャンネルって表示されれば Ok です。
0011perl歴二日
NGNG出来ました!!
ありがとうございます。m(_ _)m
一歩一歩、頑張ります!
0012ぴょん基地
NGNGこの壁が、私にとっても一番大きかったです。
最初の1行目とか、パーミッションとか・・・
あとは、Perl のお勉強ですね、私も勉強中です。
0013名無しさん
NGNGPerlの具体的なスクリプトを出し合ってのやりとりがあまり見られないね。
なんか、おまえら、ぜんぜんダメじゃん。
たとえば、Perlで掲示板なんか作れたって、
専門職として生きられるだけのスキルとはいえないぜ。
チャパツの知恵遅れ専門学校生の時給800円ぐらい価値はあるかも知れないけどね。
ここは、とにかくバカが多すぎ、やめれPerl板なんて。
0014名無しさん
NGNGなんかほしいの ?
0015名無しさん
NGNG人に期待する前にてめーでまずネタふれよ。
チンカス溜まりすぎだろ?
0016名無しさん>13
NGNG0017>13
NGNG0018>13
NGNG253 名前: 名無しさん@1周年 投稿日: 2000/05/26(金) 01:20
うはは。知恵遅れどもが、他人のページ、逝っちゃってるとは...
このスレッドは、いじめの温床だな。
8 名前: 名無しさん@1周年 投稿日: 2000/05/26(金) 01:16
HEADタグの中にこう書くんだよ。知恵遅れども。
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</HEAD>
こんなことにも答えられないでいて、他人のページ、逝っちゃってるか...
ほんとうに逝っちゃってるのは、どちらかというと...
オマエダロ
つ〜かスキルとか言ってる時点でダメダメ。
0019>13
NGNG日本語間違ってますが。
0020初心者質問です
NGNGprint "\n";
と書くところを
print "Content-type: text/plain\n\n" ;
のように省略したほうが美しいですねぇ。勉強になりました!
0021初心者3号辺り
NGNGprint 'Content-type:text/plain'."\n\n";
13は相手するだけ無駄な様な。
0022名無しさん
NGNG14=15=16=17=18=19
20=女
0023>22
NGNGな、なぜ(;´Д`)
0024>23
NGNG0025>23
NGNG声に出して読んでごらんよ。
0026>25
NGNG0027そんなわけないだろ
NGNG0028名無しさん
NGNG「じゃあPerlがオススメ!俺はJavaやるけどね。」
だそうです。そんな僕はどこから手をつけるべきでしょうか?
いきなりJavaはやめとけってことかな?
0029>28
NGNG(ただしJavaScriptじゃない方)
Perlは良くも悪くも特殊。
0030名無しさん
NGNG単純にプログラミング技術を憶えたい、というのであればJavaのほうがベターかな。
でも、清く正しく美しいプロミングを憶えるよりも、泥縄でもとりあえず自分の実現したい機能を作りたい、ということであったら話は別ね。
0031悪魔くん
NGNG実行することは出来ましたがPerlの構文がいまいち分からない。
CGIできれば飯の種に困らないと思いましたがなかなかどうしてですな。
本買いに行こうと思いますが、お奨めの書籍ってありますか?
一応、CとBASICとアセンブラは使えますが・・・。
0032名無しさん
NGNGCGIだけじゃ飯の種にはならんよ。
0033悪魔くん
NGNGサーバ構築込みでPerl書きになりたいなーと。
Unixもロクにわからん若輩者ですが、30越えてます。
っていうか、要は企業がやりたいことを
如何に独自の手法で実現するか、
でもって模倣されるまでにシェアを稼げるか、です。
Cでオープン系というのも歳食い過ぎたんで、
口と手先で商売できるようになりたいと。
0034名無しさん
NGNGもとは C , C++ 屋さんです。 unix も「使える」という程度の
知識しかありません。
いつまで、書くのかなァ・・・
0035>
NGNG0036名無しさん
NGNGhttp://www.orange.ne.jp/~kibita/n88/
0037名無しさん
NGNGopen (LOG, "$hoge") || die "Errorですよお客さん :$!\n";
で試した場合、Errorですよお客さんが表示されずに500エラーになってしまいます。
どこか他にもおかしいところがあるのでしょうか?
0038>37
NGNG何も返らず、エラーになります。
open( LOG, "$hoge" ) || &error( 'Errorですよお客さん' );
sub error{
my $msg = shift;
print "Content-Type:text/html\n\n";
print "<html><body>$msg</body></html>";
exit;
}
こんな感じにします。
0039ぴょん基地
NGNG$_[0] と同じ意味なんですか ?
0040トルエン監督
NGNGshiftっていうのはね、関数のひとつで一試合で3ゴール決めた時の事を言いますが?
0041名無しさん
NGNG引数(?)を省くと、(サブルーチンの中では) @_ の先頭から1要素取り出します。
@_ の先頭が無くなる以外、$_[0] と同じです。
0042ぴょん基地
NGNGPerl には、いろいろな関数があるんですね〜。
0043名無しさん
NGNGContent-Type:text/html
<html><body>$msg</body></html>
END_OF_DATA
って方が、"を\"って書いたりしなくていいし、
出力イメージっぽく書けるので好きなのですが、邪道?
004438
NGNGあ、単に私がいろいろ無知ないんで、いちおうなんです。
HTTPヘッダ(?)のあとには「空行を入れる」らしいですけど、
43さんのように書くと、たとえば Windows で書いたときに
Content-Type: text/html\r\n
\r\n
<html>...
となって、Mac とか UNIXでは空行と判定されないんじゃないか、とか…。
ここらへん詳しい方、教えてくれると嬉しいです。
0045ぴょん基地
NGNGあとで修正等行うときの事故予防と考えています。
print "Content-Type:text/html\n\n";
print <<EOF;
<HTML><BODY>
あげ
</BODY></HTML>
EOF
0046名無しさん
NGNG大抵の人はサーバへFTP転送でしょうから、ASCII転送だし問題なし
だとおもう。Win->UnixでASCII転送しないと動かないよね?
でもさ、プロトコル的にはヘッダと本体のセパレータは2つの連続
したCRLFで区切られるって定義されてるはずだから、それをさらに
Webサーバが\r\nに変換してるんだろうね。
っつーのは「明日のタメに」とかに書くネタじゃないね。ごめん。
0047遊
NGNGまずは、こんな簡単なスクリプトを書いてみて、成功しました。
http://thunder.prohosting.com/%7Eysc/cgi-bin/test/first_cgi.txt
http://thunder.prohosting.com/%7Eysc/cgi-bin/test/first.cgi
で、次に、time関数を使ったこんなスクリプトを書いてみたんですが、動きません。
http://thunder.prohosting.com/%7Eysc/cgi-bin/test/date_cgi.txt
http://thunder.prohosting.com/%7Eysc/cgi-bin/test/date.cgi
「CGI入門講座」(オーム社)という本に掲載されているモノをそのまま打ち込んだんですが。
testディレクトリ及びCGIのパーミッションは705、転送はアスキーモードです。
何故動かないのでしょうか?ご教授お願いします。
0048名無しさん
NGNGprint "$year/$man/$mday $hour:$min:$sec\n";
ここの行が失敗だと思うよ
print "$year\/$man\/$mday $hour:$min:$sec\n";
"/"使うときは"\"でエスケープしといたほうが無難
それと記述ミスっぽいけど$manってのは定義してないから
$monにしとけ
あとは
($sec,$min,$hour,$mday,$mon,&year,$wday,$yday,$isdst) = localtime(time);
ここの&yearを$yearに直すとか
0049名無しさん
NGNG人に聞く前に perl -cw date.cgi でチェックしてくれ。
0050ぴょん基地
NGNGy3k 対策として、
0051遊
NGNG……ケアレスミスでしたね。大変申し訳ありませんでした。
上手くいきましたです。
http://thunder.prohosting.com/%7Eysc/cgi-bin/test/date_cgi.txt
http://thunder.prohosting.com/%7Eysc/cgi-bin/test/date.cgi
0052dust
NGNG0053名無しさん
NGNG結局初心者に対しては1だけじゃん、、続きお願いします
0054名無しさん
NGNGCGIがPerl標準だから使ってるだけだろ?
0055名無しさん
NGNG>#!/usr/bin/perl
じゃなく、普通に#!/usr/local/bin/perlのままじゃ自分家のLinuxで動かんかった。
samba経由でファイルコピーしたらCRLFがそのまんまで動かんかった。
suExecにしたらotherの書き込み権限で動かんかった。
同じくファイルの所有権がwheelグループだったら動かんかった。
こいうのが多いが、しょっちゅうやってしまうので頭が痛い。
0056名無しさん
NGNG#!/usr/bin/perl
この部分は、同じなんですか?
0057名無しさん
NGNGサーバによって違う。
普通は #!/usr/local/bin/perl か #!/usr/bin/perl のどちらか。
基本的に perl がインストールされているパスを書く。
telnet が使えれば which perl で出てくるのでそれを書くのだが、
フリーのとこならたいてい CGI の説明のとこに書いてあるので
よく読むべし。
0058名無しさん
NGNGなにか おまじない ?
0059名無しさん
NGNG0060名無しさん
NGNG59 のいうとおりデバッグ用です。
具体的には、コマンドラインから perl と打って起動するときに指定するオプションを、
シェルが perl を起動するときに付ける場合ここに書くことになります。
-w は詳細なエラーメッセージの出力ですが
普通 CGI がエラーになると Internal Server Error になって
エラーメッセージは表示されないので無意味です。
0061名無しさん
NGNG0062名無しさん
NGNGと
Content-type: text/plain
ではどのような違いがあるのでしょうか?
0063名無しさん
NGNGつーか、聞く前にやってみろ。
0064名無しさん
NGNG<body bgcolor="#FFFFFF" onload="setInterval('scroll()',200)">
をCGIで出力させたくて
print "<BODY bgcolor='#FFFFFF' onload='setInterval('scroll()',200)'>\n";
とやってみたんですけど、うまくいきません。。
たぶん onload="〜"をonload='〜'に直してるからだと思うんですが、
こういう場合どうしたらいいでしょうか??
0065japu
NGNGor
print "<body bgcolor=\"#FFFFFF\" onload=\"setInterval('scroll()',200)\">";
0066名無しさん
NGNG0067名無しさん
NGNG006864
NGNG早速ありがとうございました。動きました。
このインターネット時代に掲示板で教えてもらわないと、ものを調べられないというのは致命的だなぁと思う今日この頃でした。
マニュアルとかも読めないし。。。ギャフンッ!
0069japu
NGNG(英語版はそろそろ3版出るけど。)
0070初心者です。。
NGNG思って以下の様なプログラムを作ってみました。
でも、ぜんぜん上手くいかないのです。
『500 Internal Server Error』なってしまいます。
どなたか、どこがどういけないのか教えて下さい。
ヨロシクお願いします。
#!/usr/local/bin/perl
#アクセスログ取得
#
#
open(FILE, "hoge.dat");
@allbody = <FILE>;
close(FILE);
$tmp = $ENV{'HTTP_referer'};
unshift (@allbody, $tmp);
open(FILE, ">hoge.dat");
print FILE @allbody;
close(FILE);
exit;
007162
NGNG0072>70
NGNG0073初心者です。。
NGNG007472
NGNGSSIならいいけど、直接呼んでるならHTM出力してないから
エラーになるけど。(あ、SSIでもヘッダ出さないと駄目だな)
あと、HTTP_REFERER ってやんないと拾えないと思う。
ファイルはアペンドモードにすれば全部読む必要は無いよ
007572
NGNG#exec cmd ならヘッダいらないけどね
0076初心者です。。
NGNGこれが原因でしたか。
どこから来たのかファイルへ書き込みたいと思ったのですが、
HTMへ表示させようとは思ってなかったのです。。。
しかし、何を表示すればいいのやら。
HTTP_REFERER はダメダメですね。ケアレスミスでした。
72さんホントにありがとうございます。
今すぐ試してみます。
0077初心者です。。
NGNGファイルにちゃんと書き込んでくれました。
ありがとうございます♪
0078名無しさん
NGNG0079トリニティー、ヘルプ!!
NGNGパールは入ってます。
0080トリニティー、ヘルプ!!
NGNG0081名無しさん
NGNGAN HTTP Server
http://www.st.rim.or.jp/~nakata/
を入れるのがいいっす。無料。
0082トリニティー、ヘルプ!!
NGNG0083名無しさん
NGNG質問するときは自分でスレッドを立てて質問しなさい。そうしないと
この板が寂れます。スレッドを立てると活気付きます
-----------------------完------------------------
0084名無しさん
NGNG0085名無しさん
NGNG0086名無しさん
NGNG何か違いがあるのでしょうか…
ご教授頂ければ幸いです。
0087>86
NGNG-----------------------完------------------------
0088>86
NGNGここに書くのは失礼です。
008986
NGNGやたらめったらスレッドを建てるのが良いとは
とても思えないので(ましてやあの内容で)、
簡単な質問が過去にも為されているこのスレッドで質問しまスた。
0090>83
NGNGhttp://tako.2ch.net/test/read.cgi?bbs=perl&key=962312787
0091名無しさん
NGNGhttp://www.2ch.net/test/read.cgi?bbs=unix&key=960842615
同じバカがいろんな所で繰り返してるぞ。
レスを全部読む方法を知らないらしい。
0092名無しさん
NGNGhttp://www.st.rim.or.jp/~nakata/
使い方意味不明。他に無い?
0093名無しさん
NGNG0094名無しさん
NGNG0095>92
NGNG0096>92
NGNG0097>92
NGNG変わり
0098>92
NGNG代わり
0099>92
NGNG終わり
0100名無しさん
NGNG0101>100
NGNGいや、マジで忘れたのよ(藁
■ このスレッドは過去ログ倉庫に格納されています