[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/08 16:18 / Filesize : 307 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPerl(超初心者用)



1 名前:nobodyさん mailto:sage [2006/09/10(日) 13:33:48 ID:???]
このスレッドは、他のスレッドでは書き込めない超低レベル、  
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。  
Perl使いが優しくコメントを返しますが、  
お礼はPerlの布教と初心者の救済をお願いします。  


876 名前:797 mailto:sage [2008/02/14(木) 15:20:19 ID:???]
おまいら解決したので報告します。

実は>>798が教えてくれたページを参考に作ったプログラムだったのですが、そこに罠があったのです。
ファイル名をSJISにするということで、アップページの文字コードもSJISにしていたのですが、
SJISで特定の文字(表、ソ、十など)にはWindowsでパスの区切りに使う\のコードが入っているので、
その部分が区切りと解釈されて、ファイル名が切られていたのです。
そこで、アップページの文字コードをUTF8にした所、切られることなく正常動作するようになりました。

おまけ
最近遭遇し一応解決したネタを1つ。
なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
途中のファイル名が取得できません。ダミーで<INPUT type="hidden">を挟むと大丈夫です。


877 名前:nobodyさん mailto:sage [2008/02/14(木) 16:19:19 ID:???]
おまそれはPerlの一番最初に習う、しかも新規の人は既に誰も使わな(ry

>なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
あーわかるわかる。初心者にありがちなバグだね。
おれもHTTP拡張のバウンダリ周りで苦労した。10年ぐらい前に。

878 名前:nobodyさん [2008/02/18(月) 22:53:11 ID:b8HgX1gh]
お願いします。
配列、@listの中には5つの要素が入っています。
そのなかの3つ目を削除するにはどうすれば良いですか?
$list[3] = ''; だと中身が空のまま要素数は変わりません…。

879 名前:nobodyさん mailto:sage [2008/02/18(月) 23:31:32 ID:???]
splice @list, 2, 1;

880 名前:878 mailto:sage [2008/02/19(火) 00:10:37 ID:???]
>>879さん、ありがとうございました。

881 名前:nobodyさん mailto:sage [2008/02/20(水) 18:43:38 ID:???]
ここって超初心者の板じゃないの?
モジュール関係の質問見ると引くぞ
>>878のスレ見て少しホッとしたけど

882 名前:nobodyさん mailto:sage [2008/02/20(水) 18:51:36 ID:???]
板とスレ
スレとレス

間違えてるぞ

883 名前:nobodyさん [2008/02/20(水) 20:04:29 ID:AT7Ymvry]
掲示板で書き込んだ人のIPを取得するにはどうしたら良いのでしょうか?
$〇〇 = $ENV{'REMOTE_ADDR'};
でIPを取得したのはわかったんですが、フォームの中に<input type=hidden name=△△ value=$○○>などで他人に書き込みさせても自分のIPが表示されてしまいます
色々ググったりしたんですが良く分かりません
優しい解説お願いします

884 名前:nobodyさん mailto:sage [2008/02/20(水) 20:25:09 ID:???]
>>883
hiddenタグでやろうとしていることがいまいち分からないが、
通常は、書き込んだ時にログファイルに一緒にIPアドレスを
書き込むものなんだが。



885 名前:nobodyさん mailto:sage [2008/02/20(水) 20:30:56 ID:???]
>>884
スクリプトは時刻表示とコメントだけの、一行掲示板の簡易なものです
一緒にとはどういうことなのでしょうか?
ログファイルには時刻とコメントしか載りません
超初心者ですいませんm(_ _)m

886 名前:nobodyさん mailto:sage [2008/02/20(水) 20:42:58 ID:???]
>>885
その、時刻とコメントを書き込むファイルに、IPアドレスも一緒に
書き込む方法があるでしょといいたいのだよ。
表示する際はそのデータは必ずしも出す必要は無いのだから。
それが嫌ならば、書き込みをしたときに内部的に別なファイルにも
IPアドレスと時刻を書き込ませるようにプログラムを書けばよい。

887 名前:nobodyさん mailto:sage [2008/02/20(水) 20:55:23 ID:???]
>>885
フォームにセットしなくても、書き込んだ人のIPはこれで取り出せるよ → $ENV{'REMOTE_ADDR'}

888 名前:nobodyさん mailto:sage [2008/02/20(水) 20:55:38 ID:???]
>>886
IPアドレスを一緒に書き込むプログラムの書き方を知りたいんです(;∇;)/~~色々ググって、配布されてるスクリプトから該当する部分を抽出して頑張ったんですが...良く分からなかったんです、

889 名前:nobodyさん mailto:sage [2008/02/20(水) 20:57:55 ID:???]
>>887
レスありがとうございますm(_ _)m
それでIPは表示されるのは分かったんですが、それをどこに設置すればログに書き込んだ人のIPが表示されるかが分からないんです(;∇;)/~~

890 名前:nobodyさん mailto:sage [2008/02/20(水) 21:04:58 ID:???]
>>889

open(OUT,">> log.txt");
$line = $ENV{'REMOTE_ADDR'};
print OUT $line;
close(OUT);

891 名前:nobodyさん mailto:sage [2008/02/20(水) 21:07:00 ID:???]
>>889
コメントの後ろにくっ付けちゃえw

892 名前:nobodyさん mailto:sage [2008/02/20(水) 21:14:53 ID:???]
aska とか kent の BBS にはログにIPアドレスを記録するコードは
あったはずだが。
それらを読んでも分からないのであれば、何処かに君が書いたソースを
うpしてここに貼りなさい。気分が向いたら改変してやるからw

893 名前:nobodyさん mailto:sage [2008/02/20(水) 22:19:30 ID:???]
先程はありがとうございましたo(^-^)oおかげさまで解決しましたw

もう一つ質問させて下さいm(_ _)m

($sec,$min,$hour,$day,$mon,$year,$wday) = localtime(time);
$week = $weekday[$wday];
$mon++;
$date = "$mon月 $day日 $hour:$min";
という時刻表示のスクリプト(年が無駄にあるのは気にしないで下さいw)を使ってる?んですが、$minの所だけを1ケタの秒の時だけ01や02みたいに0を先頭に付けたいのですが、どのようにすれば良いのでしょうか?
ちなみに 2月20日 22:04
というような事です!

894 名前:nobodyさん mailto:sage [2008/02/20(水) 22:24:58 ID:???]
>>893
printf使うとか。

また、例のごとくそれの使い方が分からないということであれば、
以下のコードを付け加える。

if($min>9){
$min = "0" . $min;
}



895 名前:nobodyさん mailto:sage [2008/02/20(水) 22:40:01 ID:???]
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday,$d,$d) = localtime;
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d", $year+1900, $mon+1, $mday,
('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday], $hour, $min, $sec);
print $date;


896 名前:nobodyさん mailto:sage [2008/02/20(水) 22:48:10 ID:???]
>>893
これはどうなの?
$date = sprintf("%2d月%2d日 %2d:%02d",$mon,$day,$hour,$min);
print $date;

897 名前:nobodyさん mailto:sage [2008/02/20(水) 22:53:59 ID:???]
>>895
$dは無くても良いぞ。
どうしても書きたいなら、undefにすべし

それと、
my( $year, $month, $day, $hour, $min, $sec, $wday ) = ( localtime() )[5,4,3,2,1,0];
って言うのを覚えると見た目に麗しい

898 名前:nobodyさん mailto:sage [2008/02/20(水) 23:05:01 ID:???]
perlは配列の要素が足りなければ
足りない分の後ろの要素は無視されるから
必要なければ書かなくてよろし

899 名前:895 mailto:sage [2008/02/20(水) 23:06:42 ID:???]
>>894が正常に動かない気がして5年も前に書いたやつ貼っただけだから

900 名前:nobodyさん mailto:sage [2008/02/20(水) 23:12:33 ID:???]
下らない質問に親切に答えていただいて本当にありがとうございました!
23:06 とかできました(゜∀゜;ノ)ノ

また何かあったらよろしくお願いします!(b^ー°)

901 名前:nobodyさん mailto:sage [2008/02/20(水) 23:34:16 ID:???]
もう2度と来るな

902 名前:nobodyさん mailto:sage [2008/02/21(木) 03:45:40 ID:???]
>>897
$wday いらね

903 名前:nobodyさん mailto:sage [2008/02/21(木) 09:53:00 ID:???]
>>902
あぁ、ほんとだ。


904 名前:nobodyさん [2008/02/21(木) 16:13:36 ID:VlnHmaCl]
掲示板で
[3]内容
[2]内容
[1]内容
みたいにレス番号を付けるにはどうしたら良いのでしょうか?



905 名前:nobodyさん mailto:sage [2008/02/21(木) 16:50:55 ID:???]
おまえ>>883だろ。
全部聞きに来るなら一から勉強しろよ。

906 名前:nobodyさん mailto:sage [2008/02/21(木) 17:10:04 ID:???]
>>904
お前の質問の仕方は抽象杉でわけわかんねえんだよ。
質問したければお前が書いたコードをうpれ。話はそれからだ。

907 名前:nobodyさん mailto:sage [2008/02/21(木) 17:42:47 ID:???]
自分なりに勉強してやってみたんですが分からなかったので質問しに来ました

まあもう良いです

908 名前:nobodyさん mailto:sage [2008/02/21(木) 18:09:09 ID:???]
>>904
全データ読み込んで、内容の数を数えて、
・ 一番上の内容を表示する前に数えた数を
・ 次の内容を表示する前に(数えた数-1)を
と出していけばいんじゃね?

データフォーマットも表示部分のソースも無いんじゃ
エスパーでもないかぎり(ry

909 名前:nobodyさん mailto:sage [2008/02/21(木) 18:17:46 ID:???]
「出来ないやつ」の典型的なパターンだなw
・自分なりの勉強したはずなのに「本当に調べたの?」といいたくなる程度であるところ。
・「もう良いです。」とすぐにさじをなげるところ。
もう良いというのならば、このままPerlも辞めた方がいいぞ。道はいくらでもあるんだから。

910 名前:nobodyさん mailto:sage [2008/02/21(木) 21:37:27 ID:???]
ちょっと直したい時に全部調べるのがカッタルイってのはすげーよくわかるよ。
おれも子供の頃「関数内から抜けるコマンド何だっけ?」と電話で聞いたことある。あれは助かった。
でも何カ所も直したり、まして新規でBBSを作るなら、オマエそれ全部おれに書かせるのかって。

911 名前:nobodyさん mailto:sage [2008/02/21(木) 23:40:01 ID:???]
数年前はぐぐるにしても、日本語サイトが少ないからある程度英語が読めないと
駄目だったとか、検索エンジンの使い方のコツをある程度体得しておかなければ
目的のコンテンツにたどり着けなかったりしたから、その気持ちは分かる。
Perlのサンプルソースを手に入れる時、検索を使うよりも、2chの専用スレの
テンプレのURL一覧を見た方が早いなと感じた場合もあった。

だけど、今は大分検索エンジンの使い勝手も良くなり、目的のものがヒット
しやすくなった。Perlのこの程度の事なら日本語だけでも大丈夫だしね。
この状況で、このレベルのことが分からないなら、もう無理だと思う。

912 名前:nobodyさん mailto:sage [2008/02/21(木) 23:46:33 ID:???]
ラリーもあきれ顔です
ttp://upload.wikimedia.org/wikipedia/commons/b/b3/Larry_Wall_YAPC_2007.jpg

913 名前:nobodyさん mailto:sage [2008/02/22(金) 07:19:54 ID:???]
一つの発言に対してこれ程執着するとは(^w^)
ここがどれだけ過疎ってるかを表してますね

914 名前:nobodyさん mailto:sage [2008/02/22(金) 07:55:30 ID:???]
よし、じゃPHPのくだすれと統合するか?w



915 名前:910 mailto:sage [2008/02/22(金) 10:59:13 ID:???]
>>911
っつーかググレが一番要らない。何でもググレばわかる筈だよ。理論上。
「これどうやるの?」「正規表現」みたいな一行レスもググレと同じで意味が無い。
ググレ言っていいのは通常スレ内だけで、こういうスレは隔離用だから、答えたい人
だけが見て、答えたくない人は見なければいい。教えてgooと同じ。たとえば

「C 関数 戻る」

で検索すると、return()はなかなか出て来ない。だからといって普段Tcl/Tk専門で
やってるSUNの社員に、一時的な知識のために参考書を買わせるのも無駄が多い。
ただ全部は聞きに来るなよって。

916 名前:nobodyさん mailto:sage [2008/02/22(金) 11:35:20 ID:???]
レスの内容が「ググレカス」と「正規表現」とは大きく違うと思うが。
後者は、情報にたどり着くまでの手助けを十分にしているといえる。
ひろゆきも、この簡潔な回答が出来るのは、2chの特徴であり、
他のサイトのくだらない挨拶をしなければならないところとの
大きな違いだといってたぞ。

917 名前:nobodyさん mailto:sage [2008/02/22(金) 11:40:32 ID:???]
質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドなのに
正規表現で分かるのかよw

918 名前:nobodyさん mailto:sage [2008/02/22(金) 12:38:27 ID:???]
まぁ時間と金をかけて勉強すりゃわかるだろうけど、当面の一つの目的さえ達成できれば、
あとはPerlなんて一生触りたくない層が最も多い。つまり言語がPerlなのはあるツールが
元々Perlで書かれていたからで、欲しいのはINとOUTのデータだけ。
こういう層に正規表現をわざわざ勉強させる必要は無いし、あればとっくにやってる。
そういうわけで具体的に一連の処理を書くことが望ましい。べつに10秒で書けるんだから。

また追加モジュールの紹介も価値が低い。モジュールのインスコが一番難しいんだから。
rootが必要だし、客先のネットワークによって無保証のモジュールの導入を禁止されている。
必ずしも導入できなくはないが、自社でアップデート対応を保証しなくてはならない。

919 名前:nobodyさん mailto:sage [2008/02/22(金) 13:47:46 ID:???]
ぬるぽ

920 名前:nobodyさん mailto:sage [2008/02/22(金) 14:15:30 ID:???]
>>919
ガッ!

921 名前:nobodyさん mailto:sage [2008/02/22(金) 16:15:50 ID:???]
>>918
元のソフトがPerlで書かれててPerlなんか一生触りたくないなら、
INなりOUTなりを使い慣れたプログラム言語で作ったフィルタで修正すりゃいいだろ。

一生触りたくないプログラム言語で書かれたソフトのメンテなんて断ればいい。
「どうしても」と言われたら使い慣れたプログラム言語に移植する方向で交渉すればいい。

くだすれで質問した答えを意味も分からずコピペしたソフトを使わされる顧客は悲惨だな。
よほどCPANのモジュールぶちこんでもらった方が安心できるとオモワレ。

モジュールのインストールってそんなに難しいか?
インストール先を自分の権限範囲にすればroot権限いらないモジュールも多いと思うが?
ああ、>>918みたいなクレクレ厨じゃ英語のメッセージは読めないんだな。納得。

922 名前:nobodyさん mailto:sage [2008/02/22(金) 20:36:06 ID:???]
「思うが」は典型的なバカの言葉だからあんま相手したくないけど、もう少し具体的に
言えば、配布されているCGI-Perlスクリプトを少し直して使いたい人が非常に多い。
こういう層に向かって「勉強しろ」はありえない。
その人はそこで節約した時間を社会奉仕にあてるかもしれない。
Perlはおれの方が少し詳しいかもしれないけど、Perl知ってりゃ偉いわけじゃなし。
ググレとかモジュールのご紹介とかアホを晒す暇があったら処理を書けばいいし、
それが出来ない奴は消えりゃいい。


923 名前:nobodyさん mailto:sage [2008/02/22(金) 20:39:07 ID:???]
ああそうそう。こういうスレでググレだのLWPだのほざいてる奴は
ソープランドでセックスしながら説教してるバカオヤジと同じだよ。
普通相手の人生なんて関係ないし興味もないよ。出た問いに答えればいい。
そういうスレなんだから。

924 名前:nobodyさん [2008/02/22(金) 20:47:34 ID:8Vusg7lr]
ソープランドでセックスしながら説教してる奴なんていねーよwwwww



925 名前:nobodyさん mailto:sage [2008/02/22(金) 20:48:52 ID:???]
くだすれで顧客とか言ってる奴って何なの?

926 名前:nobodyさん mailto:sage [2008/02/22(金) 21:26:16 ID:???]
>925
くだすれで顧客とか言ってる奴=>918と>921で桶?
>918
>客先のネットワークによって無保証のモジュールの導入を禁止されている。
>921
>くだすれで質問した答えを意味も分からずコピペしたソフトを使わされる顧客は悲惨だな。

どっちにしろ最初に客先とか言い出した>918がアフォだと思うが。

927 名前:nobodyさん mailto:sage [2008/02/22(金) 21:28:15 ID:???]
>918 >921 >922 
どこを縦読み?

928 名前:nobodyさん mailto:sage [2008/02/22(金) 21:40:20 ID:???]
Perlの質問マダァー?

929 名前:nobodyさん mailto:sage [2008/02/23(土) 02:02:05 ID:???]
> その人はそこで節約した時間を社会奉仕にあてるかもしれない。

何で話の流れとは関係の無い仮定の話が出てきてるの?w

930 名前:nobodyさん mailto:sage [2008/02/23(土) 02:07:11 ID:???]
ま、Perl関連はまったりとしてきているので、統合もいいと思う。
例えばこっちと一緒にするとか。

Perlコーディング初心者質問スレ Part 56
pc11.2ch.net/test/read.cgi/php/1189939783/


931 名前:nobodyさん [2008/02/23(土) 03:04:09 ID:mggQq9GV]
>>928
掲示板にレス番号を付けるにはどのようにすれば良いのでしょうか?
3.内容
2.内容
1.内容
みたいにして行きたいのですが...具体的に教えて下さい

932 名前:nobodyさん mailto:sag [2008/02/23(土) 03:27:22 ID:???]
>>931
お前の書いたソースを出せと言っただろうが

933 名前:nobodyさん mailto:sage [2008/02/23(土) 03:31:09 ID:???]
『詭弁のガイドライン』 より、引用
5. 資料を示さず持論が支持されていると思わせる
 例:(世界では、犬は哺乳類ではないという見方が一般的だ)

934 名前:921 mailto:sage [2008/02/23(土) 16:43:38 ID:???]
>>922
>配布されているCGI-Perlスクリプトを少し直して使いたい人が非常に多い。
>こういう層に向かって「勉強しろ」はありえない。

スクリプト直すのに、意味も分からずコピペして直すのか。すげえな。
「客先の」とか言ってるって事は、それを金取って(もしくは客へのサービスとして)提供するわけだろ?

拾ってきたスクリプトに掲示板で質問してコピペで手直し加えて金儲けとか、せこすぎる。
そんなもん外注に出せよ。



935 名前:nobodyさん mailto:sage [2008/02/23(土) 16:44:46 ID:???]
>>931
>908

936 名前:nobodyさん [2008/02/24(日) 03:14:09 ID:G7lDCCAr]
>>932
nurupo.biz
さんのdownloadの簡易コメントって奴です
[2/24] 内容
みたいになるのを
[2/24]3.内容
[2/24]2.内容
[2/24]1.内容
みたいにしたいんです

937 名前:nobodyさん mailto:sage [2008/02/24(日) 06:46:40 ID:???]
>>936
ダウソしてソース見た。分かった事は下記の通り。
・ データファイルには 日付<TAB>内容 が1件1行で入っていて、レス番は入ってない
・ 最大記事数を超えた分はデータファイルから消える
・ 新しいレスはファイルの先頭に追加される(古いレスほど後ろにある)
・ 表示する時に@DATA(配列)に全レスを読み込んでいる($DATA[0]がファイル内のレス総数)
・ sub print 内では、$begin、$end、$iにファイルの先頭から何行目かを示す数値が入る

とりあえず考えてみた。
試してないから、ちゃんと動くかどうかは保証しない。

どんなレス番の振り方をしたいかわからんので思いつくのを並べてみた。
 1. 表示してるページ内でのレス番
    97行目 print "[$date] ". ($end - $begin - $i + 1) .". $text\n";

 2. ファイルに残ってるレス総数中のレス番
    97行目 print "[$date] ". ($DATA[0] - $begin - $i +1) .". $text\n";

 3. それまでに書かれた全部の中でのレス番
    何行も修正しなきゃならんしデータフォーマットも変わる(=今使ってるとしたらデータ読めなくなる)から、
    最初からレス番機能が付いてる別のソフト探したほうがヨサゲ。
    どうしてもってんなら考えてやらんこともない。

938 名前:nobodyさん mailto:sage [2008/02/24(日) 10:48:11 ID:???]
printで連結演算子使うなんてもったいない。

939 名前:nobodyさん [2008/02/24(日) 16:26:23 ID:mX6RyV0T]
>>937
わざわざ本当にありがとうございます
2.のファイルに残ってるレス総数中のレス番
で表示をしたいのですが、2.を試してみたところ
[時間]3.内容
[時間]2.内容
[時間]1.内容
[時間]0.内容
[時間]-1.内容
といった風に、どんどんマイナスになってしまいます・・・


940 名前:nobodyさん mailto:sage [2008/02/24(日) 18:48:04 ID:???]
>>939
スマソ。
97行目 print "[$date] ". ($DATA[0] - $i +1) .". $text\n";


941 名前:nobodyさん [2008/02/24(日) 19:21:05 ID:mX6RyV0T]
>>940
97行目 print "[$date] ". ($DATA[0] - $i +1) .". $text\n";
でやっても>>939と同様の結果になってしまいます・・・


942 名前:nobodyさん mailto:sage [2008/02/24(日) 20:13:54 ID:???]
>>941
75行目 my $max = @DATA;
76行目 my $res_no = undef;

96行目と97行目の間に追加 $res_no = $max - $i + 1;

97行目 print "[$date] $res_no. $text\n";

でどうYO?

943 名前:nobodyさん [2008/02/24(日) 20:33:50 ID:mX6RyV0T]
>>942
できました!!!
すごいですヽ(  ´  ∇  `  )ノ ワーイ
本当にありがとうございましたワーイ!!\(o ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄▽ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄o)/ワーイ!!

944 名前:nobodyさん mailto:sage [2008/02/24(日) 22:00:31 ID:???]
printはカンマで出力しようよ。



945 名前:nobodyさん [2008/02/25(月) 00:21:00 ID:U/vtQwh8]
二重投稿を禁止するためには
データを読み込んで1行目とフォームの内容が同じの時にエラー表示させればいいんですよね?

946 名前:nobodyさん mailto:sage [2008/02/25(月) 01:29:27 ID:???]
>>945
そうだな。

947 名前:nobodyさん mailto:sage [2008/02/25(月) 01:33:39 ID:???]
連投防止のノウハウといったら、何があるかな?俺が思いつくものは・・・
・時間が近すぎる場合、IPアドレスが同一かをチェック
・投稿内容が(数回前までと)同じかをチェック

>>945の方法だと、二重投稿を防止することは出来ても、あらしの連投は防止出来ないよね。
ま、質問自体が二重投稿を防止する方法なので、特に言うことは無いと思うが。

948 名前:nobodyさん mailto:sage [2008/02/25(月) 06:27:19 ID:???]
print の出力をカンマで区切ると
画面出力命令のオンオフ切替が頻発し
連結してから纏めて出力した方が速い云々
ベンチマークしてないし本当かどうか知らんけどね

949 名前:nobodyさん mailto:sage [2008/02/25(月) 06:44:13 ID:???]
そんな事より、printでカンマ使ってると、
仕様変更でその場で出力じゃなく変数に代入とかになるとウザイ。

950 名前:nobodyさん mailto:sage [2008/02/25(月) 09:45:58 ID:???]
>>948
boobar.hp.infoseek.co.jp/bench/print.txt

951 名前:nobodyさん mailto:sage [2008/02/25(月) 22:07:36 ID:???]
大差ないってことか

952 名前:nobodyさん [2008/02/26(火) 22:28:43 ID:TAx5gJzC]
ファイルのMIME-Typeってどうやって取得するの?

PHPではmime_content_type()という関数があるみたいなんだけど、
Perlではどうやるの?

953 名前:nobodyさん [2008/02/27(水) 00:36:15 ID:NLm3jzH+]
掲示板で仮にログファイルを@LOGと置いて、それの最新の投稿を取り出すにはどうすれば良いの?
@LOG[0]でやったんですがどうも違ったみたいで


954 名前:nobodyさん mailto:sage [2008/02/27(水) 02:31:06 ID:???]
>>952
use CGI;
my $q = new CGI;
$q->uploadInfo($filename)->{'Content-Type'};

>>953
@LOG[@LOG-1]




955 名前:954 mailto:sage [2008/02/27(水) 02:37:08 ID:???]
>>954
use CGI;
my $q = new CGI;
my $filename = $q->param('uploaded_file');
$q->uploadInfo($filename)->{'Content-Type'};

1行書き忘れた。

956 名前:952,953 mailto:sage [2008/02/27(水) 03:43:32 ID:???]
馬鹿は無理に回答しなくていいよ

957 名前:nobodyさん mailto:sage [2008/02/27(水) 07:27:20 ID:???]
最新って・・・
一番最後の要素ってことなら
$LOG[$#LOG]

958 名前:nobodyさん mailto:sage [2008/02/27(水) 11:51:23 ID:???]
$LOG[-1]でよくね?

959 名前:nobodyさん mailto:sage [2008/02/27(水) 18:16:19 ID:???]
>>956
こういう質問するでも無く答えるでも無いゴミは何がしたいんだろうね?

960 名前:nobodyさん mailto:sage [2008/02/28(木) 04:40:38 ID:???]
君みたいな馬鹿を釣って遊ぶ

961 名前:952 [2008/02/28(木) 08:35:02 ID:5gTQ/iME]
>>954-955
レスありがとう

それはロダとかでファイルをアップロードした時の判別方法だよね?
書き忘れたんだけど、LWP::Simpleで外部画像を取得した時に判別する方法を教えてほしいです。

お願いします。

962 名前:nobodyさん mailto:sage [2008/02/28(木) 11:37:27 ID:???]
>>961
LWP::Simple はシンプル故に、レスポンスヘッダと
コンテントボディを同時には取得できない。
search.cpan.org/dist/libwww-perl/lib/LWP/Simple.pm

普通に LWP でリクエストを送って得たレスポンスからなら
同時に取得できる。
search.cpan.org/dist/libwww-perl/lwpcook.pod
search.cpan.org/dist/libwww-per/lib/HTTP/Headers.pm

PHP の Fileinfo() 相当のモジュールはこれ。
search.cpan.org/dist/File-MMagic-1.27/

963 名前:nobodyさん [2008/02/28(木) 17:15:11 ID:TKGGhpyN]
formが
<FORM ACTION="test.cgi" METHOD="POST"><INPUT TYPE="TEXT" NAME="f" cols="10"><INPUT TYPE="TEXT" NAME="id" cols="10"><INPUT TYPE="SUBMIT" VALUE="GO">
でtest.cgiが
#!/usr/local/bin/perl
use strict;
use CGI;
require"jcode.pl";
my $cgi=CGI::new();
my $f=$cgi->param('f');
my $id=$cgi->param('id');
@test = ($f,$id);
$role = int(rand 6);
my $html=<<"EOM";
<HTML>
<HEAD>
<TITLE>test</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=Shift-JIS">
</HEAD>
<BODY>
$test[$role]
EOM
print<<"EOM";
Content-type:text/html
$html
EOM
exit;
1;
という様に、formで受けた$fと$idをランダムで表示させたいのですがerror500
となってしまいます。パーミッションは合ってると思います。なぜなのでしょうか?

964 名前:nobodyさん [2008/02/28(木) 17:16:30 ID:TKGGhpyN]
すいません
$role = int(rand 2);
です




965 名前:nobodyさん mailto:sage [2008/02/28(木) 17:52:02 ID:???]
>>963-964
print<<"EOM";
Content-type:text/html

$html
EOM

966 名前:nobodyさん [2008/02/28(木) 17:58:13 ID:TKGGhpyN]
>>965
改行が多いと認識されたため、空行は省いて書き込みしました
ですので
print<<"EOM";
Content-type:text/html

$html
EOM
で書いてもerror500となります

967 名前:nobodyさん mailto:@testと$role sage [2008/02/28(木) 18:11:34 ID:???]
>>966
#!/usr/local/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use strict;

968 名前:nobodyさん mailto:sage [2008/02/28(木) 18:13:24 ID:???]
>>967 いい人だ

969 名前:nobodyさん mailto:sage [2008/02/28(木) 18:18:37 ID:???]
「くだすれ」の由来を教えてください

970 名前:nobodyさん mailto:sage [2008/02/28(木) 18:21:36 ID:???]
CGI::newってつい最近知り合いも書いてたんだけど
どっかのサイトか本でそんな紹介されてるのかな?

CGI.pmは問題ないんだけど、new CGI;かCGI->new;て書く癖つけとかないと
他のモジュールでクラスが渡らなくて泣きそうでない?


971 名前:nobodyさん mailto:sage [2008/02/28(木) 18:31:10 ID:???]
うむ。

972 名前:nobodyさん [2008/02/28(木) 18:56:16 ID:TKGGhpyN]
>>967でやって、KENTの文法チェッカー使ったら
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$cgi" requires explicit package name at new.cgi line 6.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$cgi" requires explicit package name at new.cgi line 7.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "@test" requires explicit package name at new.cgi line 8.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$role" requires explicit package name at new.cgi line 9.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "@test" requires explicit package name at new.cgi line 10.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$role" requires explicit package name at new.cgi line 10.
[Thu Feb 28 18:54:48 2008] newゥらは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。研修で散々言われたよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。

973 名前:nobodyさん mailto:sage [2008/03/02(日) 03:52:46 ID:???]
>>992
ためしに$LOG[1]を表示してみ。

974 名前:nobodyさん [2008/03/02(日) 07:56:37 ID:UDBaDi65]
>>994
>知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。
それを超初心者に教えてくれるのがこのスレッドの意義ですよね?
>社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
掲示板というコミュニケーションを介して聞いてますし、この内容は僕の持ってる2つのPerlに関する書籍にはありませんでした。
>猿だったら今頃とっくに死んでんだよお前。
猿じゃないです。人間です。人間と猿のDNAはたかが2%の違いといわれてますが、それは大きな差です。猿=人間という発想はおかしいかと。
>いい加減いつまで学生気分じゃ。
当て水量でモノを言わないでください。あなたの投稿からは僕があたかも社会人であるかのように見えますけど、僕まだ中学3年生です。
まあ態度という点では気をつけなきゃならないのかなとは思いましたが、あなたには>>1に書かれているような優しさや、このスレッドの意義を良く理解してもらいたいものです。

>>995
ありがとうございます!できました!
ただDATA[1]だけでは、すべてのフォームの内容が取り出されて、うまく$FORM{'comment'}の部分だけを抽出できません。。





975 名前:942=995 mailto:sage [2008/03/02(日) 16:20:53 ID:???]
>>996
なあ、ガキならガキらしく、オッサンには敬意を払えよ。
あと、試行錯誤の形跡が見れないと誰も相手してくれないぞ。
悩めるだけ悩め。そしてどう悩んだか見せろ。話はそれからだ。

ヒントは、元ソースの94行目 for から99行目 }まで。
ここで、$dateには日付、$textには内容が入ってるって事。
そっから先は自分で少し考えてみろ。

分からなくなったら、自分でどう考えてどこが分からないかを書けよ。
自分じゃ何も試さないようじゃ、漏れも付き合いきれない。

いい加減甘やかしすぎだと思えてきた。

976 名前:nobodyさん mailto:sage [2008/03/02(日) 16:39:55 ID:???]
>>997
お前、甘すぎ。バカガキは放置が基本。

977 名前:nobodyさん [2008/03/02(日) 17:44:58 ID:eMvpxgfI]
>>999
お前糞すぎワロタwww
>>998
神様すぎワロタwww

978 名前:nobodyさん mailto:sage [2008/03/02(日) 17:48:04 ID:???]
人類に平和が訪れますように

979 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<307KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef