【Perl】初心者コーナー Part14

このエントリーをはてなブックマークに追加
1nobodyさん
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
2nobodyさん:02/07/18 16:34 ID:jemWJhH3
3nobodyさん:02/07/18 16:34 ID:jemWJhH3
[総合]
 ・Perl Com: http://www.perl.com/pub/
 ・CPAN.com: http://search.cpan.org/
 ・ActivePerl: http://www.activestate.com/
 ・CGI-ML:http://forest.ne.jp/cgi-ml/

[お薦め]
 ・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm ★読んどけ
 ・Perl Recipes: http://www.effectiveperl.com/recipes/
 ・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
 ・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html
 ・Perl初心者の部屋:http://www.harukaze.net/~mishima/perl/
 ・Perlリファレンス:http://www.big.or.jp/~mio/ga/pl/plref/pl_ref.htm
 ・Perlのページ:http://homepage1.nifty.com/nomenclator/perl/
4nobodyさん:02/07/18 16:35 ID:jemWJhH3
[Document&Tutorial]
 ・Perl News: http://www.news.perl.org/
 ・Perl Monks: http://www.perlmonks.org/
 ・use Perl; : http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
 ・Rex Swain's Home Page: http://www.rexswain.com/
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.html
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
 ・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/
 ・The Perl Archive : http://www.perlarchive.com/
 ・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/
 ・use Object; : http://perl.infoware.ne.jp/

[Module]
 ・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module_/
 ・PPMPackages: http://www.activestate.com/PPMPackages/
 ・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm

[Security]
 ・安全なプログラミングのためのガイドライン:http://www.FreeBSD.org/ja/security/#spg
 ・Perl security:http://www.perldoc.com/perl5.6/pod/perlsec.html
 ・Perl security和訳:http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsec.html
 ・CGI and Security http://www.ansi.co.jp/tech/cgi/security/
 ・The Unofficial Web Hack FAQ:http://www.nmrc.org/faqs/www/
 ・How to Write Secure Code:http://www.shmoo.com/securecode/
 ・Safe CGI Programming :http://www.improving.org/paulp/cgi-security/safe-cgi.txt

[OS]
 ・Linux日本語マニュアル:http://www.linux.or.jp/JM/
 ・FreeBSD日本語マニュアル:http://www.jp.freebsd.org/man-jp/
5nobodyさん:02/07/18 16:35 ID:???
6nobodyさん:02/07/18 16:37 ID:???
6get
7nobodyさん:02/07/18 16:44 ID:???
もういいのかな?
とりあえず乙彼
8nobodyさん:02/07/18 16:45 ID:???
[Document&Tutorial]
 ・Perl News: http://www.news.perl.org/
 ・Perl Monks: http://www.perlmonks.org/
 ・use Perl; : http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
 ・Rex Swain's Home Page: http://www.rexswain.com/
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.html
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
 ・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/
 ・The Perl Archive : http://www.perlarchive.com/
 ・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/
 ・use Object; : http://perl.infoware.ne.jp/

[Module]
 ・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module_/
 ・PPMPackages: http://www.activestate.com/PPMPackages/
 ・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm

[Security]
 ・安全なプログラミングのためのガイドライン:http://www.FreeBSD.org/ja/security/#spg
 ・Perl security:http://www.perldoc.com/perl5.6/pod/perlsec.html
 ・Perl security和訳:http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsec.html
 ・CGI and Security http://www.ansi.co.jp/tech/cgi/security/
 ・The Unofficial Web Hack FAQ:http://www.nmrc.org/faqs/www/
 ・How to Write Secure Code:http://www.shmoo.com/securecode/
 ・Safe CGI Programming :http://www.improving.org/paulp/cgi-security/safe-cgi.txt

[OS]
 ・Linux日本語マニュアル:http://www.linux.or.jp/JM/
 ・FreeBSD日本語マニュアル:http://www.jp.freebsd.org/man-jp/
9 ◆JAPH9PWA :02/07/18 16:57 ID:???
あー、そっか。終わったらそう書くべきだったね、ゴメン。
10nobodyさん:02/07/18 17:02 ID:???
削除依頼提出済み

==終了==
11nobodyさん:02/07/18 17:24 ID:AnxO1cAd
foreachがわからなくて卒業できませんでした。
はぁ〜。/Д`)
12nobodyさん:02/07/18 18:01 ID:???
記念カキコ
13nobodyさん:02/07/18 18:34 ID:???
パターンマッチがうまくいってないです。
同じ文法でデータベースを変えるとちゃんと走りやがります。
つらいです。
14nobodyさん:02/07/18 20:51 ID:s7bVAL5C
質問

フレーム形式のホームページで
2個のフレームのうちの一つに画像型CGIを埋め込む。
正しいreferereを取りたいんだがどうしたらいいですか?

envだとフレームのURLを、javascriptの手法を使用しても
フレームの呼び出し元のindexのURLをもってきてしまう。
indexにはjavascriptが使えないみたい。
15nobodyさん:02/07/18 21:10 ID:???
document.referrer
の代わりに
parent.document.referrer
を使う。

jsね。
16nobodyさん:02/07/18 21:46 ID:???
超初歩的な質問ですが、
Perlでコメントを書く場合に

# 【注意】******

の様にコメント行に【】や ●▲ などの記号類を使っても問題無いでしょうか?
記号を使う目的は、後から自分が見て見やすくするというだけの理由ですが・・・。
17nobodyさん:02/07/18 21:48 ID:???
# 以降その行はコメントです。たとえバイナリデータが含まれていようと、
18nobodyさん:02/07/18 21:51 ID:???
>>17

じゃあ使っていいわけですね。勉強になりました。
19nobodyさん:02/07/18 22:22 ID:???
15>
ありがと
20nobodyさん:02/07/18 23:44 ID:???
>>17
試せばわかることまで教えない。
初心者つぶしですか?
21nobodyさん:02/07/18 23:50 ID:???
>>20
わりぃ。
今度から気をつけるよ。
22nobodyさん:02/07/19 02:59 ID:???
変数に入れる内容を "" でくくる場合と、'' でくくる場合はどういう違いが有りますか?

例えば、
$hoge = '<img src="hoge.jpg">';
$hoge = "<img src=\"hoge.jpg\">";
に違いはあるんでしょうか?
23nobodyさん:02/07/19 03:02 ID:???
全く無い!
気分で使い分けるのがツウ
24nobodyさん:02/07/19 03:11 ID:???
>>23
さんきゅ

あと聞き忘れましたが、変数に数字を入れる場合、
""で囲む場合と、何も囲まずにダイレクトに入れている場合が有りますが
その違いはありますか?

例えば
$hoge = "10";
$hoge = 10; の様に
25うひ!:02/07/19 03:21 ID:???
>>24  礼は良いからPERLDOC読めよん
気分っつーか " は変数展開される
print 'このビールは$5です';
print "このビールは$5です";
下はあなたの思った動作をしないはず

$hoge = 10はどっちでも良い
"10"なら文字列として10なら整数型として
その時々に都合良く解釈してくれる
26nobodyさん:02/07/19 03:29 ID:???
>>25
そうだ、変数展開だった。
何かが違うと聞いてた覚えがあったんですけど思い出せなかった。

PERLDOC?
27nobodyさん:02/07/19 03:36 ID:???
こう言う奴な
http://www.kt.rim.or.jp/~kbk/perl5.005/perlfaq7.html#Do_I_always_never_have_to_quote_

漏れのBMだから随分古いけどな (ウヒ!
28パイの魅学園:02/07/19 03:41 ID:Yx4p6kT0
,〜((((((((〜〜、
 ( _(((((((((_ )
 |/ ~^^\)/^^~ ヽ|
  |  _ 《 _  |
 (|-(_//_)-(_//_)-|)
  |   厶、   |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  \ |||||||||||| /  < サンプルを覗くのも・・・。
    \_~~~~_/     \_________
http://www.traffimagic.com/WIPE7MMLZCA/comein/FSJPN
無料で今日も”どっぴゅ〜” だっふんだぁ〜
29nobodyさん:02/07/19 03:42 ID:???
>>27
どうも。それ読んでみます。
30sleepy jaguar:02/07/19 05:34 ID:???
超おすすめ無料メールマガジン( ´,_ゝ`)
http://www.msleep.com/sleepy_jaguar/

Msleep
http://www.msleep.com/
( ´,_ゝ`)( ´,_ゝ`)( ´,_ゝ`)( ´,_ゝ`)
31nobodyさん:02/07/19 07:24 ID:???
こんな風にしてもフォームからPOSTで送られたデータの取得はできるの?

%hash = &form;

sub form{
read STDIN, $form, $ENV{CONTENT_LENGTH};
@datas = split /[&;=]/, $form;
return(@datas);
}
32nobodyさん:02/07/19 07:27 ID:???
>>31
試せよ。
33nobodyさん:02/07/19 07:31 ID:???
わーいsleepy jaguarさんだ!
数字のソートはsort関数でできるんですか?
34 ◆JAPH9PWA :02/07/19 08:36 ID:???
>>33
数字だろうが数値だろうがオブジェクトだろうがソートできるよ。
35nobodyさん:02/07/19 10:02 ID:zrmmynPy
Perl5.8.0キタ━━━━━━━━━(・∀・)━━━━━━━━━!?
36nobodyさん:02/07/19 12:20 ID:3YmVGYTQ
「あわわ◆JAPH9PWAたん34GETおめでたですゥ〜\(^o^)/(核爆)」




























(・∀・)ウセロ!!
37nobodyさん:02/07/19 13:15 ID:???
>31
なんでCGI.pmを使わないのかと小一時間問いつめたいのですが、
よろしいでしょうか。
38nobodyさん:02/07/19 13:24 ID:???
>>37
なにを使う使わないというのは個人の自由だからオマエ程度が問い詰めることでもないだろ。
39nobodyさん:02/07/19 13:34 ID:IEMDM0Nu
初歩的なこと教えて欲しいのですが

   if(条件式){ test1.cgi実行 }
      else{ test2.cgi実行 }

上のように、条件分岐してcgiを実行したいのですが、どうすればよいのでしょうか?

<form>タグでaction=****.cgiとして、submitで実行しか思いつかないのですが・・・
厨房ですいません。
40nobodyさん:02/07/19 13:38 ID:7Bpm6nE5
Locationで検索しれ
4139:02/07/19 13:42 ID:IEMDM0Nu
>>40
早速レスありがとうございます。検索してきました。

print "Location : ***.cgi \n\n";

こんな感じで、いいのですね
ありがとう!
42nobodyさん:02/07/19 13:47 ID:ou++e83o
掲示板の表示される名前の部分だけ色をかえたいのですが、どうずればよいのですか?
43nobodyさん:02/07/19 13:52 ID:???
それはHTML関係だろ。
板、いや、スレ違い。
4442です:02/07/19 13:57 ID:ou++e83o
今、CGIで掲示板を作っているのですが。
表示される名前の部分の色を変えるにはCGIのなかを書き換えないといけないといわれたので・・・。
45nobodyさん:02/07/19 14:03 ID:???
いくらPerlで掲示板作ってるからと言って、表示する部分はHTMLだろうが。

スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
46nobodyさん:02/07/19 15:35 ID:???
つーかHTMLがわからなくてどうして掲示板作れるんだか
4742です:02/07/19 15:48 ID:ou++e83o
すいません、ご丁寧にありがとうございました。
逝ってきます。
4839:02/07/19 16:19 ID:h7+QqD7K
すいません、また質問させてください。

フレーム使っていて、右のフレームでCGIを表示したい場合、

print "<form target=right>";
print "Location : ***.cgi \n\n";
print "</form>";

みたいにするしか、無いのでしょうか?
いろいろ調べたのですが分からなくて
49nobodyさん:02/07/19 16:27 ID:???
>>48
色々と何を調べたのか問いたい
フレーム云々自体、スレ/板違い
それにLocationすら理解していないしw
5039:02/07/19 16:38 ID:???
>>49
レスありがとうございました。

自力で調べてみます。レス違いでしたねすいませんでした。
51nobodyさん:02/07/19 17:31 ID:???
右のフレームでcgiを表示って、HTMLの問題では?
そういうことやってるサイトは無数にあるから、そこのソースコピーしろ。
52nobodyさん:02/07/19 17:55 ID:???
$hoge = 'hoge'or'fuga'or'foo'or'bar'みたいな時
if $hoge eq 'hoge' or $hoge eq 'fuga' or $hoge eq 'foo' or $hoge eq 'bar'
とするのと
if $hoge =~ /^[hfb]/
とはどちらがいいのですか?
5352:02/07/19 17:58 ID:???
訂正
if $hoge =~ /(hoge|fuga|foo|bar)/
にしてくらさい
54nobodyさん:02/07/19 17:59 ID:???
>>52
値によっては処理がかわるから適切に使い分ければ?
55nobodyさん:02/07/19 18:00 ID:???
>>53
値によっては処理がかわるから適切に使い分ければ?
5652:02/07/19 18:02 ID:???
あい、値によって適切に使い分けたいと思います
で、こういう値だったらこっちとかいう具体例ってありますか?
57nobodyさん:02/07/19 18:04 ID:???
>>56
$hoge= 'aaahogeaaa';
これにマッチさせたくなければ上の eq を使えば?
58nobodyさん:02/07/19 18:08 ID:???
>>57
なるほろ、そうします。
絶対に上の例以外の変数が入ることはなかったとしたら
どっちのほうが早い、負荷が低いんでしょう。
59nobodyさん:02/07/19 18:10 ID:???
そりゃ、eq のほうが速いだろ。
ただ、正規表現のほうをうまく書き直せばベンチマークをやらないとなんとも
言えない。
60nobodyさん:02/07/19 18:13 ID:???
そうなのれすか。
正規表現の出来具合によってはあまり変わらないと。
ご助言アリガトン。これから試してみるのれす
61nobodyさん:02/07/19 19:09 ID:???
>>53
if $hoge =~ /^hoge|fuga|foo|bar$/
()もいらない。

スピードは$hogeによる。$hogeがとる値の確率の高い順に
orは連結するように。
単一のワードなら、eqのほうが、正規表現より3,4倍早い。
まあ、無視できる程度だけど何千回もまわすようなループの中だと
でかい差になるね。
62nobodyさん:02/07/19 19:36 ID:???
誰か良いプロファイリングのしかた知らないっすか。
どこのコードが何回実行されるかを調べる奴です。


DBugモードは無しで…
63 ◆JAPH9PWA :02/07/19 20:05 ID:???
>>62
Devel::Dprofというプロファイラがあるよ。

$ perl -d:Dprof script.pl
$ dprofpp
64nobodyさん:02/07/19 20:47 ID:???
>>63
Httpd上で動かしながらプロファイルをとりたいんどす
65 ◆JAPH9PWA :02/07/19 21:11 ID:???
>>64
httpd上でも同じこと。
ただしプロファイル中はパフォーマンスが劇的に下がるので
実際に動かしながら、というのはお勧めできないけど。

関係ないけど、
そんな「やれやれ、的外れなレスが来たな」とでもいいたげなレスはやめた方が言いかと。

66nobodyさん:02/07/19 23:04 ID:???
また一人糞コテハンが。。。
コテハンうざい
消えろ
67nobodyさん:02/07/19 23:13 ID:???
逆切れモンキーキタ━(・∀・)━!!
68nobodyさん:02/07/19 23:17 ID:???
>>66 激しく同意。コテハンほどウザイものは居ないと思う。
69nobodyさん:02/07/19 23:44 ID:???
屁タレ名無しキタ━(・∀・)━!!
70nobodyさん:02/07/19 23:45 ID:???
>>69 必死だな(w
71nobodyさん:02/07/19 23:48 ID:???
しかも粘着&自作自演キタ━(・∀・)━!!
72nobodyさん:02/07/20 09:57 ID:???
おまえらIDだそうぜ?w
73nobodyさん:02/07/20 12:25 ID:???
>>72
自作自演がばれるので無理ですw
74nobodyさん:02/07/20 14:41 ID:7+IMl9AX
ここで質問していいのでしょうか?
どなたかおしえてください
http://music.2ch.net/test/read.cgi/msaloon/1011182085/25-26
75nobodyさん:02/07/20 14:57 ID:???
>>74
P554 で始まるトリップが欲しいの?
76nobodyさん:02/07/20 15:02 ID:NCN+JAmc
リファレンスを使うと何がいいんですか?
77 ◆P554yc3s :02/07/20 15:04 ID:???
>75
いやちがいます
これってトリップ解読プログラムらしいんです

でもこれって無限ループさせてRNDとかつかってランダムに6桁を選んで調べているんです
だからそれをaaaaaa-zzzzzzまで順番に一通り検索したいなとおもったんです
aaaaaaのトリップがそれなんです>PP
78 ◆P5542316 :02/07/20 15:08 ID:???
一通りって、何日(何十日?)もかかるよ。
79nobodyさん:02/07/20 15:11 ID:???
とりあえず落ち着け
解析ソフト使えばブルートも出来るだろ
8074:02/07/20 15:14 ID:???
>>78
半角英語26文字だけですからそんなにかからないはずです
ためしに4文字でやってみたのですが10分もかからかなったです
でもRNDってことは重複をやっているわけで6文字aaaaaaだと解析できなかったんです
(重複の解がいくつもでてくる)

>79
そんなのあるんですか?>解析ソフト
8174 ◆Nb6Ma0MY :02/07/20 15:20 ID:???
やりたいことは
Q、このトリップあててみろ(ヒントは英半角4文字
って言う解をゲットしたいんです これだったらそのプログラムに
Nb6Ma0Mっていれると1分かからず解析できます
82 ◆P5542316 :02/07/20 15:25 ID:???
たんじゅんに26文字の8乗で208827064576種類になり、
だいたい秒速で10000個解析できるとして20882706.4576秒かかる。
つまり、約5800時間(241日)はかかるだろう。

・10000個解析と書いたのは、わたしのマシンで最近Perlスクリプトで
解析した時の速度です。
・ちなみに同じマシンにて解析ソフトをつかったところ、約半分の4500個
解析でした。
・わたしのマシン スペック= CPU:MMX Pentium233: メモリ64M
8374 ◆Nb6Ma0MY :02/07/20 15:38 ID:???
>>82
そんなかかりますか。。。。。(汗
計算しました。6文字までだったら8Hほどなので現実的です。
実際にプログラムは6文字用です。
やり方教えてもらえませんでしょうか?
8474 ◆Nb6Ma0MY :02/07/20 15:44 ID:???
>>82
>79さんも書いていますが
この"解析ソフト"ってのは既にあるんですか?
85Dream☆こそ真の上級者:02/07/20 15:51 ID:???
Dream★こそ真の上級者
86 ◆P554yc3s :02/07/20 16:03 ID:???
>>84
解析ソフトなら検索すればすぐにヒットするよ。
今、6文字のやつ作ってみたけど>>85が居るから見せるのに迷うな。
8774 ◆fS5h1Nbo :02/07/20 16:08 ID:???
ぷぷっ
できないなら初めからそう言ってください。
だれも貴方に期待してませんから。
8874 ◆Nb6Ma0MY :02/07/20 16:09 ID:???
なんですかドリームってのは(=87)ですか?
>86
見知らぬ国のってやつですか?>ソフト
それならもってます
89 ◆P554yc3s :02/07/20 16:14 ID:???
>>88
それもってるのになんか不満なの? 処理が遅いから?
>>87はコテハン嫌いのガラクタです。
90nobodyさん:02/07/20 16:14 ID:???
コテハンは低スキルな馬鹿ばっか
9174 ◆nbuTfS9c :02/07/20 16:17 ID:???
>>89
あれはパスワードをピンポイントであてることは出来ないじゃないですか?
似たようなのはさがせますが 
(もしかしてできるのですか?)
たとえばこれなんて2文字ですがとりっぱーじゃ探せないですよね?
9274 ◆AQeVTHLI :02/07/20 16:19 ID:???
もういいです。
このスレッドのヒトは馬鹿ばっかりですね。
93nobodyさん:02/07/20 16:21 ID:???
# のあとに全角文字とかも入れられたよな。
94nobodyさん:02/07/20 16:24 ID:???
>>91
理論上は可能。何日かかるかは知らんが。
9574 ◆nbuTfS9c :02/07/20 16:26 ID:???
>>94
それはわかりますが、4文字くらいまでなら即効で分かりたいのです。
今気づきましたが>>82さんってトリップ違ったんですね
9674 ◆nbuTfS9c :02/07/20 16:44 ID:???
>>86
そろそろおねがいします
ここがだめなら例のスレにかいてください
97nobodyさん:02/07/20 16:46 ID:???
無理無理(w
98nobodyさん:02/07/20 16:55 ID:???
ほら見ろ(ww
9974 ◆nbuTfS9c :02/07/20 17:24 ID:???
あらしさんが消えたらUPってくださいお願いします
100  ◆uqiOV5h6 :02/07/20 17:26 ID:???
こういうのとかはとれるの?

#全角文字
101nobodyさん:02/07/20 20:29 ID:???
http://www.xxxx.com と http://xxx.com
の www がつくかつかないの法則性ってあるのでしょうか。
102nobodyさん:02/07/20 21:01 ID:???
質問です
@unko=(4487,8456454,4544,945452,85,754);
@manko=sort @unko;
print "@manko[0..5]";
じゃ数字のソートにならなないです教えてください
ネタじゃないです
103nobodyさん:02/07/20 21:05 ID:???
@obakana=sort{$a <=> $b}@hennsuumei;
10474 ◆nbuTfS9c :02/07/20 21:36 ID:???
>>86さん 
いなくなってしまったのですか? ワーン
おしえてくださいよー
105nobodyさん:02/07/20 21:56 ID:???
トリップ解析がなぜperlなのかまず説明せよ
106nobodyさん:02/07/20 22:07 ID:???
>>105
るせんだよ CでもPascalでも良いから
さっさとコードだせや このボンクラ糞厨が!!!
107nobodyさん:02/07/20 22:20 ID:???
漏れがPascal知らない理由をまず説明せよ
108nobodyさん:02/07/20 23:08 ID:???
>>106の削除依頼出してきました、、
っていうかじゃま。ここはPerlコンテストスレじゃないから、、
スレ立てれば?たぶんコテに荒らされるとは思うけど、、
109nobodyさん:02/07/20 23:46 ID:???
procedure trip(a :String)
begin
println('解析しました');
end;
110(笑いが止まらない):02/07/21 00:11 ID:???
な、やっぱり86は逃げただろ?
所詮コテハンで書く奴なんてそんなもの。クズばっか
111nobodyさん:02/07/21 00:14 ID:???
>>110
必死だなw
112藁藁藁:02/07/21 00:16 ID:???
>>11 即レス必死だな。
113nobodyさん:02/07/21 00:17 ID:???
>>112
どうでもいいが落ち着いてレスしな。
怒りで打ち震えているのはわかるが・・・。
114nobodyさん:02/07/21 00:20 ID:???
歴代コテハンはクズばっか
クズばっか
ばかばっか
ばっか
115nobodyさん:02/07/21 00:21 ID:???
>>114
お、壊れた壊れた♪
116nobodyさん:02/07/21 00:23 ID:N7aMXnNp
2chでコテハンで書く奴は自意識過剰なDQN決定
オマケに低スキルとくるから害以外の何者でもないね
救\ツマ2耐2耐2・ 8対2鎗 !打2蔵 9体2銑<替2蔵 8繕2其>唾2耐2惰2耐3唾2俗 !詑2・4対2陀<9対2陀<8・2然ichマ2・ PE L 「;・ ・ P
p bョ `
@ ミ WI |
ネ ・ : `
117nobodyさん:02/07/21 00:23 ID:???
Perl文法的にみて「このスクリプトの組み方はいい」というスクリプトの配布サイトを教えてください。
118nobodyさん:02/07/21 00:24 ID:???
俺持ってるよ
0fillと左寄せで総当りする奴
CでufcCrypt使ってるから、perlの倍近く速い
119nobodyさん:02/07/21 00:45 ID:???
>>117
Perlは文法的に破綻していると考えるのは俺だけか?
俺だけか・・・。
120nobodyさん:02/07/21 05:26 ID:???
>>106

$i = 1;

while(1){
kill ">>106";
if(die ">>106"){last;}

$i ++;
}

print $i, "回の殺害で、>>106は氏にました";
121nobodyさん:02/07/21 07:14 ID:???
ホント厨房だらけだな。
12274 ◆AQeVTHLI :02/07/21 09:42 ID:???
86さんは私を裏切ったのですね。
恨みます。
123nobodyさん:02/07/21 09:56 ID:v1h8+7/c
てうst
124nobodyさん:02/07/21 16:16 ID:XUtCuljQ
掲示板を書いているのですが書き込んだ内容をファイルに記録すると
スクリプトのソースがファイルに記録されてしまうのですがどこが
おかしいのか教えてください。
ソースはこれです。
ttp://zor007.netfirms.com/files/159.txt
125nobodyさん:02/07/21 16:19 ID:???
>>124
はじめ4行しか読んでないが。

$logの代わりに$reload開いてそれを$logに書き戻してないか?
12674 ◆nbuTfS9c :02/07/21 16:23 ID:???
>74です
ガーンまだ教えてもらえないのね
127nobodyさん:02/07/21 16:27 ID:???
>>74
この板の奴は口先だけ。
偉そうな口だけ一人前だから何も期待するな。
128nobodyさん:02/07/21 16:40 ID:???
>>106
2chで使われているトリップのコードを元にしたやつね。

$hoge = '検索したいトリップ';
for($i=1;1;++$i){
$salt = substr($i."H.", 1, 2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/;:<=>?@[\\]^_`/AaBbCcDdEeFfG/;
$trip = substr(crypt($i, $salt),-8);
print "◆$trip : #$i\n" if ($trip =~ /$ARGV[0]/io);
}

数字のみしか解析できないからあとは適当に改良してな。
129nobodyさん:02/07/21 16:42 ID:???
>>128
ミスった。$ARGV[0]→$hoge な
130124:02/07/21 16:56 ID:XUtCuljQ
ファイルに保存される内容はスクリプトの内容そのままではなくて
POSTした内容の後ろにソースが付くのですが、、、原因がさっぱり
です(´・ω・`)
131んじゃCで:02/07/21 16:58 ID:???
>>106
ボーランドのC++コンパイラで

#include <stdio.h>

int main(void)
{
while(1)
printf("\t\b\b");
}
をコンパイル。これCのコードね
んで.exe実行。で解析ファイルがでる。
かんばれ
132nobodyさん:02/07/21 16:59 ID:???
>>131
確かNTのコンソール落ちるんだっけか?
133コギャルとHな出会い:02/07/21 17:08 ID:8IhQDrIi
http://go.iclub.to/ddiooc/
     
     i/j/ez/対応です

お役立ちリンク集
必ず役立ちます

 サイト管理者お役立ち集
    1日4000HIT以上

http://kado7.ug.to/wowo/
      
     i/j/ez/対応
    
   コギャルとH出来るサイトはここ
ヌキヌキ部屋へ直行便

         ↓
   http://kado7.ug.to/wowo/-a.htm
    
       i/j/ez/対応
134nobodyさん:02/07/21 17:29 ID:???
>>132
俺がやったときは(バッチファイルで)再起動したよ。
そのあと、動作が不安定になって、再インストール。
135nobodyさん:02/07/21 17:33 ID:???
>>65
遅れましたがレスありあり。

DProfと言葉遣いを勉強してきます。
136.:02/07/21 19:03 ID:uxGaIo9z
Devel-DProfがインストールできません。
PPMで

Error installing package 'Devel-DProf': Could not locate a PPD file for package
Devel-DProf

などというエラーが出ます。
助けてください。
137 ◆JAPH9PWA :02/07/21 19:13 ID:???
>>136
Perlのバージョンは?
perl5.6以上なら標準で入ってるけど、
そうでなければ自分でビルドするしかないかもね。
138.:02/07/21 19:13 ID:???
>>136
自己解決しました。「Devel-Profiler」って名前だったのねん。
139nobodyさん:02/07/21 19:26 ID:???
>>124
use strict 使うか -cw でチェックしたりした?

掲示板の表示
sub Output{
my $message,$titel,$name,$mail,$reload,$color,$log,$check;
                 ↑
              ちょっとしか読んでないけどtypoハケン
140124:02/07/21 19:27 ID:XUtCuljQ
いろいろ考えてみたんですがどうやらこの中がおかしいみたいなんですが
どこかおかしいところあるでしょうか?
sub File_write_read{
my $log,$addlog,$check_string;
my @logs;

$log = $_[0];
$check_string = $_[1];
$addlog = $_[2];

if(!open(ADD,"+<$log")){
return 0;
}
else{
flock(ADD,2);

if($check_string == 1){
@logs = <ADD>;
}
elsif($check_string == 2){
print ADD "$addlog";
@logs = <ADD>;
}
flock(ADD,8);
close(ADD);
return @logs;
}
}
141nobodyさん:02/07/21 20:14 ID:???
exit(0);とexit(1);の違いを教えてください
142nobodyさん:02/07/21 20:53 ID:???
>>141
0を返すか1を返すか。
143nobodyさん:02/07/21 20:54 ID:???
返す値が違うと何が変わるんですか?
144nobodyさん:02/07/21 21:26 ID:smidQHj9
>>128
これって半角英語入れられないですよね?

$hoge = '検索したいトリップ';
for($i=1;1;++$i){
$salt = substr($i."H.", 1, 2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/;:<=>?@[\\]^_`/AaBbCcDdEeFfG/;
$trip = substr(crypt($i, $salt),-8);
print "◆$trip : #$i\n" if ($trip =~ /$hoge/io);
}

forのところaからzっていれても駄目だし
どうすればいいんだろう
145124:02/07/21 21:28 ID:XUtCuljQ
>139
ありがとうございます
一応解決しましたが、、、
いろいろ試してみた結果windows上のapache2の上ではソースが
保存用ファイルにソースまで書き込まれてしまいおかしいなと思って
LINUX上のapache2で試してみたらちゃんと書き込みできましたこれってapacheのバグ!?
146nobodyさん:02/07/21 21:28 ID:???
>>144
ほんとにPerl書けるんですか?
147124:02/07/21 21:33 ID:XUtCuljQ
>146
つい最近書き始めたばっかり
でもこのソースでLINUX上ではちゃんと動いた、、、
148124:02/07/21 21:34 ID:XUtCuljQ

俺へのレスじゃなかったのか間違えた鬱だ死のう
149nobodyさん:02/07/21 21:40 ID:???
>>148
二度とくるな、
お前の頭がバグってる。
初級ネットにPerlスレあるからいってらっしゃい。
150nobodyさん:02/07/21 21:44 ID:???
rgkltぐvbydfjぎrんちytbgrふえいhげr78おtg67れtg67tれ78gへれるgれhrht
コテハンは糞
151nobodyさん:02/07/21 21:47 ID:???
>>150
お前の挙げた条件はすべて満たしているが?
絶対にないとかほざくからそう言う恥ずかしいことになる。
152nobodyさん:02/07/21 21:49 ID:???
151には何か別のものが見えるらしい。こわっ
153nobodyさん:02/07/21 21:56 ID:smidQHj9
>>146
かけません。だから聞いているんです
お願いします
154nobodyさん:02/07/21 22:00 ID:???
>>153
それよりさ
http://music.2ch.net/test/read.cgi/msaloon/1011182085/
なんでここからあなたがとんでくるわけ?
煽ってんじゃなくて理由がしりたい。
なんでいきなりPerlコードが書かれるのよ。
Dreamが何者?とかいうよりあなたが何者?
155そこの住人だから:02/07/21 22:05 ID:???
>>154
たまたま見つけたから。
知りたいんです。
156nobodyさん:02/07/21 22:13 ID:???
>>149
お前も来るな!
何エラぶってのよ!
ヴァーーーカ
157nobodyさん:02/07/21 22:13 ID:???
>>156が頭にエラーがある何よりの証拠だな。
158nobodyさん:02/07/21 22:21 ID:???
>>157
頭にエラーって何でしょう?
脳の事いっているの?
プログラムより日本語勉強したら?
159な〜つはス〜ぎ〜雨上が〜り:02/07/21 23:11 ID:???
┌─────────┐
│                  |
│ . キ違い警報発令 ! │
│                  |
└―――──――――┘
    ヽ(´ー`)ノ
       (  へ)
        く
160nobodyさん:02/07/21 23:52 ID:???
foreach (@file){
@link=split/<>/;
if($link[0] eq "hoge"){
$hoge="$link[2]";
}
foreach($hoge){
@next=split/\t/;
print "$next[0]";
.....
}
と処理したいんですが、
どうも
foreach($hoge){
だと処理ができません。
こうしたい場合はいったいどうすれば宜しいのでしょうか?
161nobodyさん:02/07/22 00:02 ID:???
@next= split(/\t/, $hoge);
162nobodyさん:02/07/22 00:04 ID:WiTDQmMb
>>160
[書式]
foreach 変数(配列){
 処理
}
163160:02/07/22 00:45 ID:???
すみません。間に合わせで解決しました。
164nobodyさん:02/07/22 01:17 ID:???
>>163 もう二度と来るなよ
165nobodyさん:02/07/22 01:22 ID:???
>>164
良かったね。と言ってやるのが大人の対応です。
166ひろゆ子&diams;HRUNYAXA:02/07/22 02:06 ID:???
jjjjjjjjjj
167bigpapa:02/07/22 02:21 ID:???

■ 全国の愛すべき諸君へ 沖縄より愛を込めてbigpapaより

★ 2ちゃんねるの管理人に賠償と書き込みの削除を命令 東京地裁 
------------------------------------------------------------ 
 インターネット上の人気サイト「2ちゃんねる」の掲示板をめぐり、
東京都内の動物病院が「書き込みで中傷された」として東京地裁は26日、
400万円の支払いと書き込みの削除を命じた。

管理人は「不当な判決だ。賠償額についても不満があり、控訴する予定」
と話している。[毎日新聞6月26日
 

■ 東京地裁の判決の詳しい結果は下記のURLをご覧ください。
http://www1.ryucom.ne.jp/papa/newpage2chsaiban.htm

■ アスキーアート(AA)の定義JISアートの定義は下記URLへ
http://www1.ryucom.ne.jp/papa/asciiart.htm
168nobodyさん:02/07/22 03:48 ID:Ajg2mltJ
perlでintergerなど、変数の型を指定する事は可能ですか?
169nobodyさん:02/07/22 05:04 ID:???
あい
170168:02/07/22 07:13 ID:Ajg2mltJ
どうすれば良いんですか?
171nobodyさん:02/07/22 11:09 ID:???
>>170
intな値を代入する。
$int = 100 ;
172&diams:02/07/22 12:41 ID:???
aaa
173♦#:02/07/22 14:50 ID:???
変数の型で interger って初めて聞いたYO!
174Piano ◆QGZrdAAA :02/07/22 15:27 ID:EIYlzT8w
googleのI'm feeling Luckyを組み込んだ
メタ検索CGI作ってるんですが、

print "Location: http://www.google.co.jp/search?q=".$in{'word'}."&ie=UTF-8&oe=UTF-8&hl=ja&btnI=I%27m+Feeling+Lucky&lr=lang_ja\n\n";

とした場合、平仮名やカタカナは問題なく即リンクできるんですけど
漢字で検索をかけた場合、見当違いなホームページに飛んでしまいます。

$in{'word'}に入ってる値のエンコードが問題かと思いましたが
普通のgoogle検索だと問題なくこのメタCGIで検索できたので
エンコードの問題では無いと思うんですが、、、。
誰か教えて下さい、お願いします。
175hage:02/07/22 15:31 ID:???
gooでやってるみたいなHPのスクリーンショットをサムネイル化したリンク集できる?
Perlで。もしくはPHPで。
176nobodyさん:02/07/22 15:52 ID:K2sicsKl
geocitiesはCGIつかえないの?
177nobodyさん:02/07/22 16:04 ID:???
使えないよ。
178nobodyさん:02/07/22 17:00 ID:???
for(my $i = "0001";$i < "0011";$i++){
   print "$i\n";
}

結果
0001
0002



0010

初めて知ったyo
179nobodyさん:02/07/22 17:22 ID:???
どっかの本に

$prog = <<"PERL";
for($i=1;1;++$i){
$salt = substr($i."H.", 1, 2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/;:<=>?@[\\]^_`/AaBbCcDdEeFfG/;
$trip = substr(crypt($i, $salt),-8);
}
PROG

eval $prog;

こうすると、似たような処理を繰り返すとき早いとか書いてあったけど実際はどうなの?(記憶が曖昧でスマソ)
180nobodyさん:02/07/22 17:24 ID:???
なんか、サブルーチンに似てるな。
181nobodyさん:02/07/22 18:42 ID:7X7F8f9K
open(IN,"$log");
eval { flock IN, 2; };
@line=<IN>;
eval { flock IN, 8; };
close(IN);
すみません質問です。
このロック処理の方法はミスがありますでしょうか?
私は意味が無いような気がするんですが、
どうもこれだという理由がなくて困ってます。
182nobodyさん:02/07/22 18:50 ID:???
>>181
あっちこっち書くなよ、糞虫が
2chで外国人以下の敬語モドキ使ってる暇有ったら
検索でもしろよこの中卒塗装工が
183181:02/07/22 18:53 ID:???
>>182
すみませんでした。
で、答えの方はー?プゥ___。
184nobodyさん:02/07/22 19:06 ID:???
>>181
open(IN,"<$log");
eval { flock(IN, 2); };
@line=<IN>;
close(IN);

これのほうが良いかな〜?
185181:02/07/22 19:14 ID:???
>>184
そうですか〜。
わっかりました。
ほんとにですか?
186nobodyさん:02/07/22 19:16 ID:???
冗談に決まってるじゃん
187181:02/07/22 19:19 ID:???
>>186
失礼ですが答えを知っておれますか?
188nobodyさん:02/07/22 19:25 ID:???
>>186 = 嘘つき
189nobodyさん:02/07/22 19:25 ID:???
ハ-ゲシクワ-ラタ
190181:02/07/22 19:50 ID:???
>>181
flock(XX, 1) 読込中なので書込をロック、あとから来たら待つ。(ブロック)
flock(XX, 2) 書込中だから書込読込ロック、あとから来たら待つ。(ブロック)
flock(XX, 5) 読込中なので書込をロック、あとから来たら0を返す。
flock(XX, 6) 書込中だから書込読込ロック、あとから来たら0を返す。
flock(XX, 8) ロック解除(close(XX)すれば解除なのであまり使わない)。
191181:02/07/22 19:51 ID:???
残りは俺の肛門。
192Piano ◆QGZrdAAA :02/07/22 20:57 ID:Ipm5/McI
どなたか>>174の質問がわかる方いらっしゃいませんか?
193nobodyさん:02/07/22 21:03 ID:???
>>192
googleAPIについて勉強するのが吉。
194181:02/07/22 21:06 ID:???
>>174
POST限定じゃないの?
195181:02/07/22 21:07 ID:???
http://www.google.co.jp/search?q=in{'$word'}&btnI=I'm+Feeling+Lucky
これならいける?
196181:02/07/22 21:10 ID:???
&ieとか書くと駄目だね。
わかったか厨房?プゥ___。
197181:02/07/22 21:17 ID:???
>>Piano ◆QGZrdAAA
195の方法で出来たんだろ?
無視かよ!
198nobodyさん:02/07/22 21:19 ID:???
るせヴァカ
199181:02/07/22 21:20 ID:???
>>198
はぁ。はいはい。
200nobodyさん:02/07/22 21:34 ID:???
>>199 煎って葦!
201nobodyさん:02/07/22 21:36 ID:???
   ∧  b
  /●ヽ/
 (∧_∧)  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< 質問前に過去スレ検索モナー。
 (    )  \_____
 | | |
 (__)_)
202Piano ◆QGZrdAAA :02/07/22 22:36 ID:???
>>195
行けました!
どうもありがとうございました!
203nobodyさん:02/07/22 22:58 ID:11nH30Zk
KENTの掲示板弄ってて、色々エラー出るんで文法チェックのスクリプト通しながら
虫取りしてるんですが、たびたび「@〜は\@〜と書け」ってな表示に遭遇します。
これは多分配列を認識してないんだと思うんですが、原因が分からないんです。
どこか変ないじり方しちゃったんでしょうか。

なんか全部の配列について同じように警告されてる感じなんですが。
204nobodyさん:02/07/22 23:01 ID:???
「'」とか「"」でくくっているのでは?
本当にそうなるかはわからないけど。
205 ◆JAPH9PWA :02/07/22 23:04 ID:???
>>203
配列とは関係なく、
単に"[email protected]"を"foo\@mailaddress.com"にせよ、という意味だと思われ。
206181:02/07/22 23:22 ID:???
>>202
返事がおせぇーよ。
じゃぁな。プゥ___。
207nobodyさん:02/07/22 23:28 ID:11nH30Zk
えと、
In string, @lines now must be written as \@lines at yybbs.cgi line 285, near "@lines"
って書かれるんですけど、285行には@linesなんてないし、@linesが含まれる行は
ログの取り込み処理とかそういうので、どこもいじってないはずなんです。
ひょっとしてどこかでクォーテーション閉じ忘れたとか、そんなことでしょうか。
見直してますが、2600行ぐらいあるんで大変です。
208203:02/07/22 23:28 ID:11nH30Zk
すいません、>>207は俺です。
209nobodyさん:02/07/22 23:30 ID:???
>>208
285行前後を良く見るんだ。 ; の付け忘れとか。
210nobodyさん:02/07/22 23:33 ID:???
悪い事は言わんからその辺のFAQ読みながら
自分で50行位書いてみれ、それが出来たら解決する。
どっかで行か何か閉じるの忘れてるんだろけど…
211203:02/07/22 23:42 ID:11nH30Zk
えと、色々見直したらヒアドキュメントの閉じ方が変になってるのを発見しました。
ってか、頭の方のEOMが小文字になってました。
なんか変な置換かけちゃったみたいです。
お騒がせしました。
212168:02/07/22 23:53 ID:???
integerの間違いです
結局無理って事ですよね?
213nobodyさん:02/07/23 00:20 ID:???
Cで言うところのenumerationってどうやってます?
%e = (abc => 0, xyz => 1, ... , xxxx => 99)なんてのをスマートに初期化したい。
214nobodyさん:02/07/23 00:40 ID:8Y4x0Hwt
質問があります。

例えば、$dataという変数のなかに、ABという文字列がいくつあるか
カウントすることはできますか?
215nobodyさん:02/07/23 00:40 ID:???
>>213
ハッシュとか配列じゃ不満?
216nobodyさん:02/07/23 00:43 ID:Cp6+hfm6
掲示板を作成中なのですが、
設定された最大記事数を越えると過去ログに行くようには出来るのですが、
管理人の任意の時に、表示されている記事を過去ログに行かせるというのがうまく出来ません。
何か良い方法はないでしょうか?お願いします。
217nobodyさん:02/07/23 00:43 ID:???
すみません、さっきの質問取り消します。
218214=217:02/07/23 00:44 ID:???
すみません
219nobodyさん:02/07/23 00:48 ID:???
>>216
日本語として成立してない気がします。
220nobodyさん:02/07/23 00:52 ID:8Y4x0Hwt
print $xの出力が

あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの

だった時、最初の3行のみを表示するには、どうすればよいでしょうか?
221213:02/07/23 00:56 ID:???
>>215
ハッシュでやろうとしてるけど、abc => 1, xyz => 2と数値を直接書くのはださいので
かっちょいい書き方(初期化)があるかなと。
222:02/07/23 00:58 ID:hvIhNQI1
223nobodyさん:02/07/23 00:58 ID:???
>>220
出力しちゃったらどうにもなりません。

ああ、UNIXなら

perl a.pl | head 3

でOKか。
224216:02/07/23 01:01 ID:Cp6+hfm6
>>219
掲示板に書き込みがあり、ある一つの話題で盛り上がる

その話題が終わる

※管理人が、その話題に関する書き込みをまとめてpast.htmlに送る

各過去ログ(past1.html past2.html〜)に飛べるようにする

という風にしたいのです。分かりにくかったらすいません。
225 ̄ ̄ ̄ ̄:02/07/23 01:01 ID:???
%e = (abc => 0, xyz => 1, ... , xxxx => 99)なら、

@e{qw(abc xyz)}= (0 .. 1);
226213:02/07/23 01:12 ID:???
>>225 それ、かっこいいですね。いただきっ。ありがとうございました。
227nobodyさん:02/07/23 03:58 ID:???
>>226
my @symbols = qw/ foo bar baz /;
my %e;
@e{@symbols} = (0..$#symbols);

TMTOWTDI
228nobodyさん:02/07/23 04:02 ID:???
>>227
さらにそれをuse constantで定数化しちゃうというのも・・・
BEGIN
{
my @symbols = qw/ foo bar baz /;
my %e;
@e{@symbols} = (0..$#symbols);
while( my($name,$value) = each %e ) {
eval sprintf( 'use constant ENUM_%s => %d', uc($name), $value );
die if $@;
}
}
print ENUM_FOO, "\n";
229nobodyさん:02/07/23 04:22 ID:???
>>179
それじゃあ$iとかが全部その時の値に置換されちゃうじゃん・・・

ともかく、文字列をevalするのは遅い。そういうことをするのは例えば
AUTOLOADを使って動的に関数を作成するときとかだけだと思うよ。
そうすると2度目からはAUTOLOADを通さずに関数が呼び出されるからその分
早くなるので。
230yuri:02/07/23 08:42 ID:???
gooでやってるみたいなHPのスクリーンショットをサムネイル化したリンク集できる?
Perlで。もしくはPHPで。
教えて下さい、お願いします。
ちなみに私は17歳・女です。
231nobodyさん:02/07/23 08:58 ID:???
>>230
うむ、死ぬ気でHTMLパーサ書いてデザインしてくれ。
232 ◆JAPH9PWA :02/07/23 09:21 ID:???
>>228
そのくらいならenum.pmを使ってほしい。
use enum qw(FOO BAR BAX);
233nobodyさん:02/07/23 09:23 ID:???
>>232
えー、enum.pm標準じゃないじゃん。いや、どっちでもいいんだけど
234nobodyさん:02/07/23 09:58 ID:???
固定ハンドル=低スキル
235nobodyさん:02/07/23 09:59 ID:???
>>234←それにすら劣ると。
236nobodyさん:02/07/23 10:23 ID:???
固定ハンドルは死ね
237nobodyさん:02/07/23 12:25 ID:???
コテハンよりお前らの方がウゼー
238nobodyさん:02/07/23 12:33 ID:???
>>230
>ちなみに私は17歳・女です。
誰が信じるか!(・э・)
239nobodyさん:02/07/23 13:17 ID:???
>>230
信じる以前に、そんな意味の無いことを書く奴はうせろ
240nobodyさん:02/07/23 13:40 ID:???
       ∧             ∧
       /.::ヽ           /.:: ヽ
      /.::: ヽ          /.:::: ヽ
      /.:::  ヽ         /.::::  ヽ     このスレは一体
     /.::::::.  ヽ,,,,,,,,,,,,,,,,,,,,,,,,,,,/.::::::::.  ヽ
    /.:::::::::::                 ヽ       何なのですか         
    /.:::::::::   /        ヽ     ヽ
   /.:::::::   / ‐・‐     ‐・‐\     ヽ
   ヽ.::::::       .::::            /
    ヽ.:::::      .:::::            /
     ヽ.::::     \__/      /
      ヽ.::::      \/       /
       \.:::::            /
241yuri:02/07/23 14:19 ID:???
>>238
信じてください。
242yuri:02/07/23 14:20 ID:???
>>239
出来るの?出来ないの?どっち?
243yuri:02/07/23 14:21 ID:???
質問する側の態度は丁寧なのに対して
答える側の態度は悪すぎですね。
絵梨悲しいです。
244nobodyさん:02/07/23 14:28 ID:???
> 1:自分はこう言う事がしたい。
> 2:それでこんな風にやってみたが・・・
> 3:それだとこんなエラーが出て上手く行かなかった。
>
> 1と3が無いと誰も答えられないよ。
> 良い回答は良い質問から。一緒に勉強しましょう。

質問のテンプレートが>1に用意されてるのに無視か?
その癖誰も聞いちゃいねえ話を一人でしてる。
態度が丁寧だってなら、書き込み内容の要不要くらい判断しろ。
245nobodyさん:02/07/23 14:29 ID:???
>>243 ここの厨房どもには無理
246nobodyさん:02/07/23 14:30 ID:???
加えて、PHPの話ならスレ違いだ。
どんなに態度が丁寧でも、郵便局で牛丼頼むような奴にまともな対応が返ってくるなんて思うな。
247nobodyさん:02/07/23 14:30 ID:???
おいコテハン野郎
こんな質問に答えてこそ存在意義を示せるってもんじゃないか。
答えてやれよ
248nobodyさん:02/07/23 14:44 ID:???
>>230
できるかできないか聞いているならできる
教えてあげたんだからこれ以上くる必要はないから来ないでね。>>1もまともに理解できない人は。
249nobodyさん:02/07/23 14:54 ID:???
JAPH

というのは
just another perl hacker
の略のですにゃん◆JAPH9PWA は神なのですにゃの
php板では最強なの(´ω`)/
>>◆JAPH9PWA
ただもう出てこないでまじで
名無しで受け答えしてもなんの問題もないやん
マ板では相手にしてもらえなかったのか(泣
250nobodyさん:02/07/23 14:57 ID:???
具体的な方法を尋ねたらダンマリを決め込むであろう248がいるスレッドはここですか?
251nobodyさん:02/07/23 15:03 ID:???
コテハン答えろ!!!!
252yuri:02/07/23 15:16 ID:???
>>244
だって、私初心者ですよ?
書き方も考え方も分からないのに・・酷すぎます。
253nobodyさん:02/07/23 15:18 ID:???
>>252
ハァ?
254ハァ? :02/07/23 15:19 ID:???
ハァ?
255yuri:02/07/23 15:20 ID:???
助けて頂けませんか?
256yuri:02/07/23 15:21 ID:???
皆で頑張りましょうよ!
力を合わせればきっと出来ます!
257nobodyさん:02/07/23 15:22 ID:???
どれが本物で、どれが似非物だ?
258nobodyさん:02/07/23 15:29 ID:???
259nobodyさん:02/07/23 16:13 ID:???
>>yuri
出来るよ、ImageMagickで検索してみ
ただこれのHTMLパーサは10年前の代物だから、このままだと
話にならない。
*nixならmozillaやGaleonにレンダリングして貰っても良いんだけど
普通はサーバにブラウザなんか入って無い、と言うかXさえ走って居ない
やるなら、Mozillaのソース追ってXLSだっけ? でperlから叩ける様に
してやるのが一番良さそうだが俺はやった事が無い
WINならIEコントロールかな?
http://www.nk.rim.or.jp/~t_kimata/cgi/
ここの管理人が前に色々やってたな
260nobodyさん:02/07/23 16:16 ID:???
その部分は公開していないのが残念だな。
261nobodyさん:02/07/23 16:23 ID:???
長文ウザイ
もっと分かり易く教えろやヴォケが!
262nobodyさん:02/07/23 21:08 ID:???
japu痰がいた頃はもっとまた−りしてたけどなぁ。
263nobodyさん:02/07/23 21:43 ID:???
>>262
同意
良スレだったんだが・・・・
夏のせいか
264nobodyさん:02/07/23 21:52 ID:???
初心者がここに質問きて
ぼろくそに言われて、荒らしになったと思われ

最近、回答者も”俺は偉いんだぞー病”にかかってるの居るからなー
265nobodyさん:02/07/23 21:55 ID:???
>>264
Perlできてもなぁ・・・。
あのシェルスクリプトからの成り上がりっぷりがくさくて嫌い。
266nobodyさん:02/07/23 21:56 ID:???
>264
最近の事じゃないけどな。
初期からずっとだよ。

さて、気を取り直して。


1 名前:nobodyさん 投稿日:02/07/18 16:34 ID:jemWJhH3
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
267nobodyさん:02/07/23 22:03 ID:???
>>266
CGI改造したら、サーバーダウンさせっぱなし…追放されちった…
開発者向けでないテストサーバー知ってる人いますか?
出来れば無料…
知らないか…    
268nobodyさん:02/07/23 22:24 ID:???
localhost
269nobodyさん:02/07/23 22:35 ID:hYANtpdN
270nobodyさん:02/07/23 22:43 ID:???
>>269
ネタマルチは放置しませう
271nobodyさん:02/07/23 22:58 ID:???
掲示板で1度書き込みした後、更新する度にその書き込みが書き込まれていく原因として何が考えられます?
お願いします。
272nobodyさん:02/07/23 23:02 ID:???
>>271
激しく仕様。
273nobodyさん:02/07/23 23:24 ID:dbl+1Fdv
>>271
bbs.cgi?name=giko&msg=itteyoshi
こんなのがリロードされたら連続書き込みになっちまうだろ。
書き込みを受け取ったら、
Location: bbs.cgi
で飛ばすがよろし。
274nobodyさん:02/07/23 23:44 ID:???
>>273
thanks
初心者にとっての頼みの綱であるこのスレを守っていってください。
さよなら。
275nobodyさん:02/07/23 23:52 ID:???
>>274
ナイス他人任せ。
276nobodyさん:02/07/24 04:06 ID:???
LWPの使い方についてです。。
ちょっと自分で調べてみて、

use strict;
use LWP::Simple;

print get('http://www.2ch.net/');

とすると、そのページが表示される、というところまで調べられました。
そのページのHTMLソースを1行ずつ配列に入れていきたいんですけど、
どうすればできるんですか?よろしくお願いします。
277nobodyさん:02/07/24 04:39 ID:???
ふぁ〜あ、暇だなや。。。
278nobodyさん:02/07/24 04:58 ID:???
>>276
use strict;
use LWP::Simple;

my @foo = split( /(?:(?:\r)?\n)+/, get( 'http://www.2ch.net' ) );

ちなみにその質問は「LWPの使い方」とは違いますね。 ;)
279nobodyさん:02/07/24 05:06 ID:???
>>278
ありがとうございます。
やってみたら、正常に動きました。
280m:02/07/24 05:47 ID:rNnlw0cu
281nobodyさん:02/07/24 06:00 ID:???
なんで my 宣言しなきゃいけないんですか?
外すとエラーになります。。
my宣言は都合でしたくないんですけど解決策はありますか?
282nobodyさん:02/07/24 06:16 ID:???
>>281
なんでしたくないの?

使わない時もあるけど、そっちのほうが例外で普通はmyを使わない
スクリプトってのは酷いコードになるよ。
283nobodyさん:02/07/24 06:26 ID:???
>>281
use strict;を外せば?
284nobodyさん:02/07/24 09:48 ID:???
>>282

perl使ってる時点でstrict通そうがコード酷いのはいなめないと思うが。。。
つーか綺麗さより使い勝手って割切られてる言語なんだし。。。
285nobodyさん:02/07/24 09:51 ID:???
csvを使ったデータベース顧客一覧CGIを作ったんですが、
Netscape4.7以前のバージョンで表示されないんです。
IEだと表示されたんですが・・。

Javascriptが原因かと思ったんですが消してみてもダメでした。
ちなみにソースを見るとちゃんと顧客一覧が表示されているんです。
ソースにはあるのに、どうしてブラウザには表示されないんでしょう・・。
286nobodyさん:02/07/24 09:57 ID:???
>>285
lintにでも書けてみ?なんか間違いあるんだよ。
287nobodyさん:02/07/24 11:06 ID:???
>>285
Perlのコーディングうんぬんじゃなくて、HTMLの間違いなんじゃないの?
tableのタグの閉じ忘れとかさ、、、
288285:02/07/24 11:06 ID:???
>>286
単純にタグの閉じ忘れでした。
Perlが原因では無かったです。
逝ってきます・・・・・・・・
289nobodyさん:02/07/24 12:03 ID:???
タグを閉じ忘れても表示するIE。
まともなHTMLを厨が書かなくなるわけだ。
290nobodyさん:02/07/24 12:12 ID:???
>>284
Perl使ってるからしょうがないなんて言い訳にすぎない。
どんな言語を使ったって同じ。
291nobodyさん:02/07/24 12:31 ID:???
>>290
構造化言語とシェルスクリプトに無理矢理構造化を組み込んだ言語。
オブジェクト指向言語とシェルスクリプトに無理矢理オブジェクト指向を組み込んだ無理矢理構造化を埋め込んだ言語。

ノイズはどんどん増幅されている。
292nobodyさん:02/07/24 13:05 ID:???
はいはいそうだねー。きっとコンパイラーにお守りしてもらえば
いいコードかけるのねー。
293nobodyさん:02/07/24 13:07 ID:???
>>292
うん。便利。
まぁ、あの無駄に多いライブラリ覚えてる奴とかすごいと思うけどな。
294nobodyさん:02/07/24 14:35 ID:???
>>293
おめでとう。自己満足できればそれでいいと思うよ。
295nobodyさん:02/07/24 14:39 ID:???
>>294
がんばってね。
296nobodyさん:02/07/24 14:47 ID:???
>>295
言いたいことがあるなら、メール欄に書いても伝わらないYO!
297nobodyさん:02/07/24 14:48 ID:???
>>296
なかなかおもしろいだろ?w
298nobodyさん:02/07/24 14:51 ID:???
>>297
どこがおもしろいかわからんかったよ。おもしろい部分を説明してくれ。
299nobodyさん:02/07/24 15:14 ID:izWyFOGV
UNIX板から来ました。
http://uptime.netcraft.com/up/graph

ここにあるような、URLを指定してそのサーバーの
HTTPヘッダ情報を取ってくるようなスクリプトを作成したいと考えています。

自鯖の情報は取れるようになったのですが、SERVER_SOFTWARE、
イメージとしては
1.URL入力
2.そのURL(鯖)に対して自鯖のCGIをリクエストしてよってお願い
3.向こうの鯖の環境変数get
てなカンジかなぁ、と思っています。

つまりまぁ、上記URLのようなことができればこんな面倒なやり方じゃなくてもいいのですが。
何かよいお知恵をお貸しください。
300コギャル&中高生H大好き:02/07/24 15:16 ID:nUYA8H9H
http://go.iclub.to/ddiooc/
     
     i/j/ez/対応です

お役立ちリンク集
必ず役立ちます

 サイト管理者お役立ち集
    1日4000HIT以上

http://kado7.ug.to/wowo/
      
     i/j/ez/対応
    
   コギャルとH出来るサイトはここ
ヌキヌキ部屋へ直行便

         ↓
   http://kado7.ug.to/wowo/-a.htm
    
       i/j/ez/対応
301nobodyさん:02/07/24 15:31 ID:e324b2xP
意味をちょっととりかねる。
そのサーバのHTTPヘッダ情報をとるのになんで向こうのサーバが自サーバのCGIを
リクエストする必要があんの?
302nobodyさん:02/07/24 15:36 ID:???
Socket使って、HTTPでGETなりPOSTなりすればいいだろ。
303nobodyさん:02/07/24 16:04 ID:???
以下のコードで、2つ目のprintが実行されません。
なぜでしょうか?

my $a = "!";
print "Test1" if $a =~ /!/g;
print "Test2" if $a =~ /!/g;
304nobodyさん:02/07/24 16:13 ID:e324b2xP
gを付けない。あと$aという変数は特殊な意味をもつので普通避けるべき。
305nobodyさん:02/07/24 16:18 ID:???
>>304
動きました!
有難うございます。
306nobodyさん:02/07/24 16:19 ID:izWyFOGV
>>301
確かに自分でもよく整理できてませんでした。(汗

>>302
今調べたらsokectのサンプルソースがあったので、
これを頼りにがんがってみます

ありがとうございました。
307てすた:02/07/24 17:48 ID:IOzuRKcl
308てすた:02/07/24 17:49 ID:IOzuRKcl
309てすた:02/07/24 17:50 ID:IOzuRKcl
>>308をコピしてくり。たのむ
310nobodyさん:02/07/24 17:50 ID:???
>308
iswebはCGIの外部呼出し不可。
311てすた:02/07/24 17:52 ID:IOzuRKcl
>>310
シテマシターーヨ ヽ(TーT)ノ
312初心者:02/07/24 18:16 ID:???
CGIファイルにアクセスするとIEでは、正常に表示されるのに
ネスケではHTMLソースで表示されてしまいます。
ネスケの全バージョンでダメでした。
Content-typeとか<HTML><BODY>等は問題なく入ってるんですが・・
313nobodyさん:02/07/24 18:17 ID:???
>>312
信用できません。
314nobodyさん:02/07/24 18:19 ID:???
ヘッダーの部分見せてみろ。
315初心者:02/07/24 18:21 ID:???
>>313
本当です。

Perl内は
print "Content-Type : text/html\n\n";
        ・
        ・
print "<HTML><HEAD><TITLE>投票結果</TITLE><META HTTP-EQUIV=\"PRAGMA\" CONTENT=\"NO-CACHE\">\n";
print "<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'></HEAD>\n";
print "<BODY BGCOLOR=#000000 TEXT=#FFFFFF>\n";
        ・
        ・
print int($count) ;
print "</table></div></BODY></HTML>";

となっています。
316nobodyさん:02/07/24 18:22 ID:???
>>315
lintにかける。
317nobodyさん:02/07/24 18:29 ID:???
>>312
サーバはどこ?
逆なら考えられるんだけどな・・・トクトクとかで。
318nobodyさん:02/07/24 18:31 ID:???
>315
自分で初心者を名乗る奴は基本的に信用できん。

print "Content-Type: text/html\r\n\r\n";

にしてみろ。
319初心者:02/07/24 18:31 ID:???
>>316
lintかけてみました。
ドキュメント宣言やHTML lang="ja"を入れてみたんですけど
やっぱりダメです。
ネスケでHTMLソースがダラダラと表示されてしまいます。
320nobodyさん:02/07/24 18:32 ID:???
>>319
そもそもスクリプト中にHTMLまるまる入れるのは何とかできんのかと。

編集、デバッグ、保守

すべてが大変だが。
321初心者:02/07/24 18:33 ID:???
>>318
オオオオ!!!
バッチリ逝きました!!!
ありがとうございます!!!

ローカルでは\n\nでうまく行ってたのに
ミクストメディアではこんなの必要なのか・・・・・
322初心者:02/07/24 18:34 ID:???
>>320
HTML外部にしたら動作重くなるから。
323nobodyさん:02/07/24 18:42 ID:???
>>318
それってWindows以外で受け取っても大丈夫?
324nobodyさん:02/07/24 18:45 ID:???
>>323
>>318が正しいから問題ない。
IEが悪い。
325nobodyさん:02/07/24 18:50 ID:???
>>323
HTTP敵にはそっちが大正解。
326nobodyさん:02/07/24 19:28 ID:???
Perlについての質問箱
http://pc3.2ch.net/test/read.cgi/tech/1017736187/
: ◆JAPH9PWA はもうそこからでんな!
みてて悲しくなったぜ。
327nobodyさん:02/07/24 19:39 ID:???
Perlで日本語を使うときはEUC-jp。
328nobodyさん:02/07/24 19:41 ID:???
>>327
偏見?
329nobodyさん:02/07/24 19:48 ID:???
表\示
330nobodyさん:02/07/24 20:07 ID:???
>>328
普通だろ。
日本語マッチとかするときに。
331nobodyさん:02/07/24 20:13 ID:???
確かにEUC-JPの方がいい。
漏れはShift-Jisで使い続けてしまったせいでとても変更してられないと思い変えてないが。
これから始める人はEUC-JPにしておいた方がいいぞ。
332nobodyさん:02/07/24 20:16 ID:???
正しくは Shift_JIS と言ってみるテスト。
333nobodyさん:02/07/24 20:21 ID:???
>332
スマヌ
334nobodyさん:02/07/24 20:40 ID:???
>>282-284
ありがとうございます
いろいろと参考にさせてもらいます
335nobodyさん:02/07/24 20:51 ID:???
>>326 いい加減やめろ。
336nobodyさん:02/07/24 21:35 ID:???
今掲示板をつくっていてログを読みこんで表示させるところまでは出来たのですが
よくある設定されている件数を超えると自動で「次の10件」などというアンカーを出すには
どういった処理をすればよいのでしょうか?
337nobodyさん:02/07/24 21:36 ID:???
>>336
//ボタンを表示するか決定
//引数:ページ
//返値:無し
function checkbuttonvisible($page)
{
//ファイル開く
if(file_exists($this->config->datafile))
{
$fdat = file($this->config->datafile);
$count = count($fdat);
}

//戻るボタンの制御
if($page <= 0)
$this->beforebuttonvisible = false;

//進むボタンの制御
if($count - ($page * $this->config->rescount) <= $this->config->rescount)
$this->nextbuttonvisible = false;
}


PHPだがね。
338nobodyさん:02/07/24 21:51 ID:OQVd1xfT
KENTさんのYY-BBSで半角カナが使えるようにするには
どこをどうすればよいのでしょうか?お願いします。
339nobodyさん:02/07/24 21:53 ID:???
>>338
スクリプト言語の一つもまともに使えないくせによくほざく。
340nobodyさん:02/07/24 22:03 ID:???
質問するみんな。
>>1は読んでるか?
341nobodyさん:02/07/24 22:04 ID:???
>>340
マルチポストするなと言うのも入れてほしい・・・。
342nobodyさん:02/07/25 00:20 ID:???
>>340
コテハンは荒れる元なので自粛ってのもいれてほしぃ。
343nobodyさん:02/07/25 01:08 ID:???
まさに、コテハン叩きの思うつぼだな。
344nobodyさん:02/07/25 01:29 ID:EsugPjEd
>>338
デコードのとこで
jcode.pl使ってる箇所をコメントアウトしてみ
345nobodyさん:02/07/25 02:08 ID:/52BoRCi
perlで質問です。実行すると例えばユーザー名、パスワードを入力し、送信してくれる
プログラムが作りたいんですけど、どんなライブラリ、関数を使えばよいでしょうか?
キーワードだけでも教えていただけないでしょうか?お願いします。
346nobodyさん:02/07/25 02:17 ID:???
>>345
頭の中で言いたいこと整理してからもう一度来い。
>ユーザー名、パスワードを入力し、送信してくれる
意味がわからん。何のユーザー名、パスワード。何処に送信?
347nobodyさん:02/07/25 03:03 ID:???
scrachって何の事なんでしょうか?マジレスおなぎします。
348nobodyさん:02/07/25 03:06 ID:GntP6rBS
from scratch=ゼロから, 初めから.
349nobodyさん:02/07/25 03:14 ID:???
サンスコ。
350nobodyさん:02/07/25 03:14 ID:???
351http://www.geocities.co.jp:02/07/25 06:29 ID:1xMT6UXy
どなたか、Geocitiesの広告のはずし方をご存じませんか?
352nobodyさん:02/07/25 06:50 ID:???
>>351 >>1を読め。

それにしても、このスレッドも堕ちたな...。
353nobodyさん:02/07/25 07:35 ID:???
>>337

perlしかわからないのですが・・

354nobodyさん:02/07/25 07:45 ID:???
>>353
そんなに大きな違いがあるのか?
355nobodyさん:02/07/25 08:33 ID:???
>>351

if $351 == aho {
$351 = itteyoshi;
}
356nobodyさん:02/07/25 08:35 ID:???
>>355
動かんぞ?それ。
357nobodyさん:02/07/25 12:08 ID:???
if ($_351 == "aho") {
$_351 = "itteyoshi";
}
358357:02/07/25 12:09 ID:???
if ($_351 eq "aho") {
$_351 = "itteyoshi";
}
359nobodyさん:02/07/25 12:26 ID:???
>>354

関数が違うので分かりません
360nobodyさん:02/07/25 13:19 ID:???
renameとunlinkを使いたいのですがうまくいきません。
rename (aaa.txt, bbb.txt);
でやると実行権限がないとエラーが出ます。念のためaaa.txtのパーミッションを777に
したんですけどダメでした。
unlinkは unlink aaa.txt; とやるのですがファイルが無いとエラーが出ますなんででしょう。
361nobodyさん:02/07/25 13:32 ID:???
>>360
パーミッション777のファイルがリネームもアンリンクもできないということは、
ファイルシステムが壊れています。OSを再インストールしましょう。
362nobodyさん:02/07/25 13:34 ID:???
OSというのは、サーバーのOSが壊れてるって事ですか?
たぶんそれはないと思うんですけど。
363nobodyさん:02/07/25 13:34 ID:???
ディレクトリのオーナー、パーミッションはどうなってんのよ
364nobodyさん:02/07/25 13:35 ID:???
>>362
起こっている現象から推測すればそういうことになります。
365nobodyさん:02/07/25 13:57 ID:???
http://cgi.tripod.co.jp/hello_baby/cgi-bin/aiueo.cgi
中身
#!/usr/bin/perl
require 'jcode.pl';
rename aaa.txt bbb.txt;
print "Content-type: text/html\n\n";# HTML文出力宣言
print "エラー:$!";

何がダメなのかさっぱりわからないです。ちなみにここはパーミッションとかは関係ないみたいです。
366nobodyさん:02/07/25 13:59 ID:???
367nobodyさん:02/07/25 14:07 ID:av9ITDXM
aaa.txt, bbb.txt
じゃないの?
368nobodyさん:02/07/25 14:17 ID:???
すいません、出来ました。
でも今度はファイルが無いとエラーが出ます。
ファイルはちゃんとありますよね・・?
369nobodyさん:02/07/25 14:22 ID:???
まだやってたんか。。。$ENV{'PATH'}を出力してみ。
370nobodyさん:02/07/25 14:22 ID:v0Zz+Fi9
rename ("../aaa.txt","../bbb.txt");
こうしているんですが。
371nobodyさん:02/07/25 14:24 ID:av9ITDXM
Tripodの特殊事情じゃないの。別鯖とか。よくしらんけど
372nobodyさん:02/07/25 14:24 ID:???
>>370
そんなこと書かれてもそっちのディレクトリ構造知らんし。
373nobodyさん:02/07/25 14:25 ID:v0Zz+Fi9
#!/usr/bin/perl
require 'jcode.pl';
# rename ("../aaa.txt","../bbb.txt");
print "Content-type: text/html\n\n";# HTML文出力宣言
print "$ENV{'PATH'}<br>";
print "エラー:$!";

何も出ないですね。。
374nobodyさん:02/07/25 14:26 ID:v0Zz+Fi9
/cgi-bin/aiueo.cgi
/aaa.txt

こういう感じです。
375nobodyさん:02/07/25 14:29 ID:???
>>374
ほんとにそうか?ホスト名が分かれているからCGI専用のサーバが分かれて
いるんじゃない?実際のディレクトリ構造とマウントポイント・エイリアス・
リンクなどもあるからニンともカンとも。
376nobodyさん:02/07/25 14:39 ID:???
サーバのFAQ位読めよ
つーかローカルでテストやれや
外でするならKENTの設定変える以外触るな
377nobodyさん:02/07/25 15:00 ID:???
renameとかってOSによって動くか動かないかわからないみたいだから
サーバー上でやらないと意味ないじゃん。
378nobodyさん:02/07/25 15:14 ID:???
るせんだよ チンカス夏厨
FAQ読めっつってんだろ ああ??
おまえ日本語の不自由な方か?
379nobodyさん:02/07/25 15:24 ID:???
>>378
FAQ読んだけどrenameという単語は出てこなかったです。
そんなにカッカしないでヒントになるところ教えてください。
380nobodyさん:02/07/25 15:29 ID:???
tripod.co.jpはCGIはcgi.tripod.co.jpサーバ
普通のファイルがmembers.tripod.co.jpサーバ
381nobodyさん:02/07/25 15:46 ID:v0Zz+Fi9
#!/usr/bin/perl
require 'jcode.pl';
rename ("http://members.tripod.co.jp/hello_baby/aaa.txt","http://members.tripod.co.jp/hello_baby/bbb.txt");
print "Content-type: text/html\n\n";# HTML文出力宣言
print "$ENV{'PATH'}<br>";
print "エラー:$!";

こうやったけどダメでした。
382nobodyさん:02/07/25 15:48 ID:???
>>381
痛いな。
383 :02/07/25 16:00 ID:???
>>381
それだけでrenameできると勘違いしている新種の厨房(推定:中学校1年生 オナニーの覚えたて。)
384nobodyさん:02/07/25 16:02 ID:???
痛いのはわかったんで何が違うのか教えてください。
385nobodyさん:02/07/25 16:03 ID:???
別サーバのファイルにはLWPとか使わないとアクセスできません。
おとなしくcgi-bin/以下にファイルを置きましょう。
386nobodyさん:02/07/25 16:09 ID:???
どうして、別サーバーなのに、一回のftpで両方つながるんでしょうか。
というか、一つのサーバーにつないでいるのにあたかも他のサーバーのディレクトリも見えるなんて不思議です。
387nobodyさん:02/07/25 16:13 ID:???
#!/usr/bin/perl
require 'jcode.pl';
rename ("aaa.txt","bbb.txt");
print "Content-type: text/html\n\n";# HTML文出力宣言
print "$ENV{'PATH'}<br>";
print "エラー:$!";

aiueo.cgi と aaa.txt を同じディレクトリに置きました。
エラー:No such file or directory と出ました。
今度は何がいけないんですか?
そんなファイル無いと言われても確かに同じディレクトリにあります。
どうしてこんなに分からず屋なんでしょうか。
388nobodyさん:02/07/25 16:14 ID:???
ftpでつながるのはftpサーバ(ftp.tripod.co.jp)です
members,cgi,ftpそれぞれ別なんです。
389nobodyさん:02/07/25 16:15 ID:???
>>387
errorでてもファイル名は書き換わってないですか。
390nobodyさん:02/07/25 16:19 ID:???
はれ!?
ほんとだ!
変わってる!!
なんでだ!?
391nobodyさん:02/07/25 16:49 ID:???
そろそろ場違いだと気付いて欲しいんだけど?
392nobodyさん:02/07/25 17:02 ID:???
じゃどこで聞けばいいんですか?
393nobodyさん:02/07/25 17:06 ID:???
>>378
>>382
>>383
お前ら、見ていて不快だからくるな。
394nobodyさん:02/07/25 17:10 ID:???
>392
tripodのサポート。
395礼儀厨房:02/07/25 17:10 ID:???
@レンタルCGIでチャットをおきたいです
APeriへのパスの指定とディレクトリをいじってみたけど
Bわかりませんでした。パスの指定とは基本的にどういうことなのでしょうか?
借りたサーバーのQAにいってもよくわかりませんでした。もっとも外国鯖なので
翻訳したのが少々わかりづらかったかなと・・・
借りた鯖はPROHOSTINGです パスの指定、ディレクトリの仕方をご教授ください
お願いします
396nobodyさん:02/07/25 17:11 ID:???
>>395
Peri -> Perl
397nobodyさん:02/07/25 17:12 ID:???
>395
惜しいな。
>いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
「コーディング」のスレなんだ。
設置は別のところで聞いて。
398礼儀厨房:02/07/25 17:14 ID:???
>>397
あ・・・そうですね^^;
すいませんでした。ご親切にどうもです^^では
399nobodyさん:02/07/25 17:17 ID:???
400礼儀厨房:02/07/25 17:20 ID:???
>>399
スレ違いの意見に答えてくれてありがとうです><
401XSについて再び1:02/07/26 02:39 ID:???
俺は前スレでXSネタであらしたヤシだ(dat落ち中)
ここで適当に受け答えしてる奴らほんと全員シネヨ。(特にコテ)
今日ひさしぶりにperlxstut.txtみてやっとわかったよ。
手順言うからメモしろチンカスども。
環境はWin ActivePerlな
ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
でnmake ダウソ ファイル名はnmakeとかに直しとけ
402XSについて再び2:02/07/26 02:40 ID:???
h2xs -A -n Xstest でXS用のモジュールスクリプトフォルダができる
cd Xstestして Xstest.xsに
void
hello()
CODE:
printf("Hello. Tinkasu Boy!\n");
とかく。チンカスはそうお前の事だ。
んでperl Makefile.PL
nmake
nmake install
403XSについて再び3:02/07/26 02:41 ID:???
で確認だ。
#!/usr/bin/perl(まぁDOSならいらんがな)
use Xstest;
Xstest::hello();
でそれ実行できればOKだ。OK?糞Perler。
お前らが20代とかだったら俺は泣くね。
404nobodyさん:02/07/26 02:47 ID:???
シーン。。。
405nobodyさん:02/07/26 05:42 ID:???
XSチュートも読まずに(読めずに?)スレ一本分も悩んでたのかあ
前に5.7絡みでgunzipが講釈してた様なきがするけど
やっぱり●●は想像を絶する位●●なのかなあ
406nobodyさん:02/07/26 06:08 ID:???
CGI実行ユーザー名を獲得する事って可能でしょうか?
407nobody:02/07/26 06:20 ID:???
whoami
408406:02/07/26 07:35 ID:???
有難う御座いました。
409nobodyさん:02/07/26 07:51 ID:???
>>408
use User::pwent;
my $pw = getpwuid($$);
print $pw->name;
410 ◆JAPH9PWA :02/07/26 08:58 ID:???
とりあえずnmake15.exeってのはnmakeインストーラ、
というか圧縮されたプログラムなんで、実行するとnmake.exeとnmake.errってファイルが出来る(だったかな)
だからrenameの必要はないはずなんだけどなぁ。彼は実際にやってみたんだろうか。
411nobodyさん:02/07/26 09:19 ID:???
>>401-403
低脳にして粘着とは救いようがないな。
412nobodyさん:02/07/26 09:29 ID:???
>>411
煽りはスピードが命。
413nobodyさん:02/07/26 13:48 ID:???
opren(file-handle, "filename") || &error("ファイルが開けません");

この || って、ダメだったらって意味ですか?
414nobodyさん:02/07/26 13:50 ID:???
>>413
もしくは。

ifの中のと一緒だ。

前の式がtrueなら後ろの式は評価されないと言う性質を逆手に取った
他の言語ユーザに見せたらどつき倒されそうな処理です。
415nobodyさん:02/07/26 14:02 ID:???
perlでしかやらない方がいいという書き方って事ですか。

あと、
sub auto_link {
  $_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)/$1<a href=\"$2\">$2<\/a>/g;
}
これはURL文字列を自動的にリンクにするサブルーチンですけど、
自分は正規表現が複雑なのはわかりません。
でもサブルーチンは便利で引数だけ渡せば意図する結果を返してくれます。
サブルーチンの中の正規表現をわざわざ噛み砕いて理解する必要はありますか?
まぁ、これがわからないと自分でいちから作れないという訳になってしまいますが。
416nobodyさん:02/07/26 14:03 ID:???
>>414
括弧の多い言語では普通ですが、何か?
417nobodyさん:02/07/26 14:09 ID:OgCRHfVm
1:自分はこう言う事がしたい。

 script01.plをuser01で実行し、その中からsystem関数を使って
script02.plを実行させたい。
 ただし、script02.plは、user02が実行したものとしたい

2:それでこんな風にやってみたが・・・

 perl -h で起動オプション調べてみましたが、起動ユーザーを指定
する方法がありませんでした。

 何か、スクリプトを起動するユーザーを選択する方法ってないでしょうか? 
418nobodyさん:02/07/26 14:17 ID:???
>>417
script02.pl をsetuidモードにでもしとけ。
419nobodyさん:02/07/26 14:39 ID:???
>>416
そうか?Cとかで


fp = fopen("m","r") || printf("error!");

なんてコード書いたら多分干される。
420nobodyさん:02/07/26 14:49 ID:OgCRHfVm
>>418

googleで調べたら、chmod 4755 script02.pl でsetuidモードになるようです
が、やはりだめでした。

script02.pl は、PostgreSQL への INSERT文を集めたスクリプトなんですが
database not connecti が出ますね。

いや、言わないでください。GRANTでデータベースの方に権限与えれば
っていうのは重々判ってはいるんですが、script01.plを実行するユーザは
nobodyにしたいんですよね。将来、CGIにする為。
dbにnobodyの権限を与えるのを躊躇ったものですから、script02.pl を
PostgreSQLユーザーの権限にしておいて、実行ユーザーを換えようと
思ったんです。

どうも、この方法はだめなようですから、GRANTを検討してみます。
421ハニホ・ヘニハ:02/07/26 15:09 ID:???
>>420
接続時のパスワード設定すりゃいいじゃん。病院いっとく?
422nobodyさん:02/07/26 15:31 ID:???
サブルーチンの終わりの
return $hoge;
↑ってどういう意味があるんですか?
423ハニホ・ヘニハ:02/07/26 15:34 ID:???
>>422

>>1をよく読みましょう。それくらいなら検索いっとく?
424nobodyさん:02/07/26 15:52 ID:NvB7dZaP
サブルーチンを呼んだ側に戻り値を返す。
425422:02/07/26 15:54 ID:???
>>423
ゴグってみましたんですがいい所があったのに僕の頭のメモリーが足りませんでした。
426nobodyさん:02/07/26 15:55 ID:???
if(-e hoge.txt){ print "OK"; }
else{ print "NO"; }

cgiファイルと同じディレクトリにhoge.txtがあるんですけど
NOしか出てきません。なぜですかね。
他のファイル演算子も試しても全部elseになっちゃいます。
427422:02/07/26 15:55 ID:???
>>424
ありがとうございます。
それなんですが無くても動作する場合とかがあるんですが。
どういうことですか?
428422:02/07/26 15:57 ID:???
if(-e $hoge){print "f";}
else{print "b";}
429nobodyさん:02/07/26 16:00 ID:???
>>427
Perlは一番最後に処理されたステートメントが「自動的」に
戻り値になる:

sub FOO_1 { 1 }
sub FOO_2 { return 1 } # FOO_1 と戻り値は一緒

sub BAR { FOO_1() } # 戻り値はFOO_1の戻り値
430nobodyさん:02/07/26 16:00 ID:???
>>427
無い場合は最後に評価した値を返す
431nobodyさん:02/07/26 16:01 ID:NvB7dZaP
戻り値を必要としないサブルーチンだったら要らないというだけでしょ。
returnを書かなかったら最後に評価された式の値が返るんじゃないの。たしか。

>>426
サーバがIISかPWSとか?
432nobodyさん:02/07/26 16:01 ID:NvB7dZaP
すごいかぶったね。
433nobodyさん:02/07/26 16:01 ID:hk7TA9Ju
434nobodyさん:02/07/26 16:02 ID:???
>>426
それってhoge.txtを""でくくってないからとかいうオチでは?

例えばコマンドライン上から以下を実行するとOKはプリントされないけど

perl -e 'print "OK" if -e hoge.txt'

これはOKってでるみたいよ:

perl -e 'print "OK" if -e "hoge.txt"'

これまたuse strict;しないからそういうエラーがでるわけだ・・・
435426:02/07/26 16:08 ID:???
えっと、ftpでつないだときに表示されるディレクトリの一番上から記述したら
一応ファイルがあることは確認できました。
$a = "home/***/html/cgi-bin/hoge.txt";
if(-e $a){ print "OK"; } else { print "NO"; }
でOKでした。
で、renameしたいので、
$b = "home/***/html/cgi-bin/hoge2.txt";
rename ($a,$b);
としましたが、アクセス権が無いとエラーが出ます。
hoge.txtを777にしてもだめです。
ファイル演算子でアクセス権を確認すると全てOKでした。
なぜでしょうか。
436422:02/07/26 16:10 ID:???
>>429
sub BARみたいな使い方があるんですね。
初めて知ったことなので勉強になりました。
ありがとうございます。
>>430-431
最後に評価された式の値が帰るような書き方をすればreturnは別になくてもいいのですね。
>>434
そんな気がしました。
437422:02/07/26 16:13 ID:???
>>435
$a="hoge.txt";
$b="hoge2.txt";
rename($a,$b);
438422:02/07/26 16:15 ID:???
>>435
ごめんたぶん間違い。
439422:02/07/26 16:16 ID:???
$dir="hoge";
$dir$a
$dir$b
こうかな?
440nobodyさん:02/07/26 16:16 ID:???
>>436
単一式のルーチンだったらreturnははしょってもいいと思うけど、
基本的には見易さとメンテの事を考えてちゃんとreturnを使用するのを
お勧めする
441426:02/07/26 16:16 ID:???
えっと、ディレクトリの一番上から書くというのは関係なかったみたいです。
で、
$a="hoge.txt";
$b="hoge2.txt";
rename($a,$b);
で試すんですけど、「Permission denied 」とエラーが出ちゃいます。
442nobodyさん:02/07/26 16:17 ID:???
>>437
"home"の前にスラッシュが抜けてるとかいうオチではないだろうか・・・
443442:02/07/26 16:18 ID:???
間違った。>>435だった
444nobodyさん:02/07/26 16:18 ID:???
>441
ディレクトリのパーミッション変えろ。
445426:02/07/26 16:21 ID:???
>>444
で、で、でで、出来ました。
755を757にしたら成功しました。
でも、勝手にパーミッション変えても平気なんでしょうか。
他の人のcgiファイルとかもあるんですけど。。。
446422:02/07/26 16:22 ID:???
>>440
returnは毎回使いことにしました。
ご教授ありがとうございます。
447426:02/07/26 16:23 ID:???
cgi-binのディレクトリのアクセス権を変えるのはなんとなく嫌なので
cgi-bin/mycgi/hoge.cgi
cgi-bin/mycgi/hoge.txt
と、cgi-binの中に専用のディレクトリを作って、mycgiのパーミッションを757にした時
cgi-binは755のままでも平気ですか?
448nobodyさん:02/07/26 16:25 ID:???
>>447
調子にのるな! 聞く前に自分で試せ! 典型的なバカだなオマエは。
449426:02/07/26 16:28 ID:???
す、すいません!調子に乗りました!
自分で試します!!
450nobodyさん:02/07/26 16:30 ID:???
>典型的なバカ
ワロタ
451nobodyさん:02/07/26 17:20 ID:???
>>447
何を持って平気と言うか分からんが
そんなに心配ならcgi-binディレクトリのパーミスを400にでもしとけば?
452nobodyさん:02/07/26 17:23 ID:???
>>451
nobodyが手出し不能になる罠。
453nobodyさん:02/07/26 17:28 ID:???
掲示板のCGIで、フォーム内に改行いれると
表示も改行出来るようにしたいのですが
一行に繋がってしまいます。
問題の一行なんですが

$text =~ s/\n/<BR>/g;

間違ってますかね?
454nobodyさん:02/07/26 17:31 ID:???
>>453
\r\nとかね。
455nobodyさん:02/07/26 17:53 ID:???
>>453
そんな説明しかできないからいつまで経っても…
456nobodyさん:02/07/26 17:56 ID:???
>>455
うむ。
でも、理解できてるならヒントくらい出してやりな。
まぁ、出せないか。
457nobodyさん:02/07/26 18:01 ID:???
>456
見苦しすぎ…。
>454の言ってることを半分でも理解してみな。

夏だなぁ。
458453:02/07/26 18:03 ID:???
>>454
おおおおおおおおおおおおおおおおおおおおおおおおーーー!!!!!!!!!!
素晴らしい!!!!!!!!!!!!!!!!!!!!!!!!!!
有難うございます!!!!!!!!!!!!!!!!!!!!!!!!!!!
459nobodyさん:02/07/26 18:04 ID:???
>>456
説明不足だからヒント出すにしても範囲が大きくなってしまう。
実際のスクリプトの1行だけを見せられても、前後の関係で実際に処理されて
いるかどうかさえ見当もつかないよ。
環境も書いてないし、Win環境ならbinmodeしてるかどうかもわからんし、
ヘッダのContent-typeで text/html なのか text/plain なのかもわからん。
460nobodyさん:02/07/26 18:05 ID:???
>>457
見苦しすぎ。w
ヒントだ、調べて答えてやれ。

よくあるフォームで入力した場合の改行コードをHTMLで改行するための<br>に置換したい。
しかしあの一見間違ってはいないコードでは置換できない。
なぜか?だってさ。



461nobodyさん:02/07/26 18:21 ID:???
462nobodyさん:02/07/26 18:45 ID:???
rthyj54jhyjhioujhiyujitjhitjijtohjtihjtoijhiotjhiotjhoitj
r89えygptm4yhbtp45y@:yhghtp
あえr、ぐbyjhpct。rl:、え;clvw0y8gjlv
gj、0b9yt4
コテハンは糞
463nobodyさん:02/07/26 18:58 ID:???
頭大丈夫か?
仲間のとこに行って来い
http://pc3.2ch.net/test/read.cgi/tech/1012096319/39-
464nobodyさん:02/07/26 19:06 ID:???
「「「「「さよならあああああああRRRRRR
おおおおおおおお「−0:「;:
465nobodyさん:02/07/26 19:08 ID:0TP2S/Vp
flockの質問。
lock中他の書き込みを制限しますが、
待たされる方はずっと待っているようです。

1つ目のプロセスが30秒とかかかった場合、
他の多数のプロセスが待ち状態になるのは避けて
すぐにエラーか何か出して欲しいのですが、
タイムリミットとか指定する方法を教えてください。
466nobodyさん:02/07/26 19:09 ID:???
>>465
スレッド作って非同期IOを実現。
467XSer/1 ◆keVp6ehw :02/07/26 19:47 ID:???
     ∧___∧_
  /    \   /  \
 │     ●   ●    │   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 │     /\_/\   │  < 帰ってきたぜチンカスども
  \__│●   ●│_/    \_________
   /    \/ ̄\/  ヽ
  /              ヽ
 /                ヽ
 >/│   _       │\ <

まともに反応できたのが糞コテの生き残りJAPH9PWAだけとはな、、
どうせここは WEB製作板とム板のファイヤーウォールだろうからなしゃーねな。
まぁ中には防火壁をやぶった糞コテもいるがな 括弧笑い。
もう俺はDLLプログラマーになったぜ(ギコハハ[ここにギコが入る])
468XSer/2 ◆keVp6ehw :02/07/26 19:47 ID:???
前の.xsファイルにこれを追加する
int
wind()
CODE:
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
LPSTR lpCmdLine,int nCmdShow);
{
MessageBox(NULL, "HEY TINKASU! ", "KUSOKOTE! -_- ", MB_ICONHAND
|MB_OK|MB_SETFOREGROUND);
return 0;
}
んで先頭に
#include<stdlib.h>
#include<stdio.h>
#include<windows.h>を付けとく
469XSer/3 ◆keVp6ehw :02/07/26 19:50 ID:???
nmake
nmake installだ。
でPerlスクリプトでuseして&windで呼び出したらメッサゲボックス君が
宇宙の心理を語ってくれる。
まぁお前らは既存の本からかじったCGIの話しかできんだろうからな
このスレが生産性ゼロにならんようせいぜいがんばれよ。
あばよチンカスども。もうこねーよのぉうわーんってか?

(注)チンカス=[80%の]回答者と糞コテ
後、俺はファイルロックの話が嫌いだ。専用スレでやれ。
470nobodyさん:02/07/26 19:52 ID:???
>>467-468
そのままコテハンで書いてくれ。その方が楽でいい。
471nobodyさん:02/07/26 19:55 ID:???
つまりフィルターして透明あぼーんすると言う事か
472nobodyさん:02/07/26 22:52 ID:0TP2S/Vp
>466
安定した処理を作成したいと思っています。
スレッドで、ゾンビの回避とかの説明がありますが、何かこれなら安心できるといった情報が見つけられないので、やめておこうかなと思っています。
プロセスが多数たまるよりは、symlinkロックの方がいいかなという思いになりました。
473 ◆JAPH9PWA :02/07/26 23:56 ID:???
そんな貴女にノンブロッキングモード。

use Fcntl qw(:flock);

flock FILEHANDLE, LOCK_EX | LOCK_NB or die "他のプロセスがロックしてるっぽいです。";

後はコレとループとsleepを組み合わせればよし。
474nobodyさん:02/07/27 11:57 ID:XCYe1qpS
現在、perlでデータファイルを扱うために、flockしながら、ファイルを
オープンしてsplitして連想配列に読み込んで、データを変更したら、
print FILE"$A{$B},$A{$C}\n" って感じで書き込む、ってことをやってます。

しかし、データ量もトランザクションもうなぎ上りでファイル書き換え待ち
などで専用サーバーなのに、ロードアベレージが常時3〜5とかになって
きました・・・われながら効率の悪い・・・

で、最近知ったのですが、

use DB_File;
tie %A, "$DB_File","DBdb",0_RDWR|0_CREAT,0640,$DB_HASH;

なんてやって、

untie %A;

なんてやるとイイ!みたいなんですが(あってますか?)この、
tie(ファイル読み込み?)や、untie(ファイル書き込み?)は、排他制御
は自動で行われるんでしょうか?
475nobodyさん:02/07/27 12:47 ID:???
>>474
DB_Fileモジュールのマニュアルを読んで幸せになりましょう。
476nobodyさん:02/07/27 18:06 ID:???
ファイルの最終更新日を指定する事は可能でしょうか?
477nobodyさん:02/07/27 19:11 ID:???
>>476

>>1をよく読めやVOKEGA!
478Xeser ◆keVp6ehw :02/07/27 20:14 ID:???
>>472-475 お前ら喧嘩売ってるだろ?
今日、本屋でオライリー.jpが「Perlシステム管理」とかいう
糞な本を翻訳して出してるのみたよ。まさにチンカスが書きそうな本だ
そう、おまえらみたいな奴が書いたんだろうな。さっさと「ラクダ3版」翻訳しろってな。
今,W2kでPerl5.8R3のコンパイルの調整中だminiperlだけなんかしらんができた。
やるよ、チンカスのおかずにぴったりだ。
少なくともcygwin1.DLLが別途いる、まぁCygwinのコアだけインすコすりゃいいんだ。
以前Setup.exeがぶち壊れてたが、今はしらん。FTPからとってくるのもよし。
479Xeser ◆keVp6ehw :02/07/27 20:15 ID:???
------------------------------------------------------------
Build->[CYGWIN_NT-5.0/1.3.7(0.51/3/2)/i686(Cele)]
http://hiero_pl.tripod.co.jp/miniperl.exe
MD5: a09c4590b276c0c75f5e8ef89176552d
------------------------------------------------------------
http://pc3.2ch.net/test/read.cgi/tech/993665608/397 [←天才]
LWPとか使えんからな。
480Xeser ◆4XfSMGTg :02/07/27 20:16 ID:???
#(ここでトリップ変える:#kusokote)
チンカスどももその低脳な脳みそでも使ってすこしは社会に貢献しろよ。
それともその脳には自分が儲けることしか入ってないのか?糞だな。
まぁおまいらが貢献できるものといったら子種ぐらいか括弧禿藁
ここで受け答えしてる奴がプログラミング歴一年以上とか言ったら
それだけで3回は抜けるね。うんこぶりぶり。#(効果音)
悔しかったらVCで俺より先にPerl5.8コンパイルして晒せや。
あとPerl=CGIとかCGI=Perlとか思ってる奴そこに一時間正座(゚Д゚メ)!
(注)チンカス= お前ら= [80%の]回答者と糞コテ
481nobodyさん:02/07/27 20:18 ID:???
        ..;llll;~~~~~~~~~~~~~~~'';;;;;l;;,,
      .;l;^^~             ~~^;l;,,
    ..;;^^                  ~^;;,,
   .,;;~       .., ..,  , ,        ~;;;,     ま
  ..,;~ .;~    ..; .;^ l  l .l  l ,     ~~;;,    た
  ;~ ..;;^   , ;~ l ..:l  l ..l ...l ,l ,     l;,    駄
 ..l~ ...l~  ,..;;^..;^ l~ ;l  l ..l  l .l .l .,   ~k    レ
 .;~ ..;l;  ;l:..l: ;l ..l, .;~ ..~ ~  l .;l ;l ;l   ;~;l,   ス
 ;~ ...;l  l;~.;l :l  .'   /  ∧  ..;l ..l: l:,  .;l..:;l   か
 l  ..l  ;l l; .'   _ノ \| \  ..'' l~l:  l l;   ・
 l  .l;  l ..''                .;l.;l  l l;   ・
 l:::::::;l::::::::l;   ___     ___ ''..l:::::::;l::::l    ・
 l::::::::;l::::::::l                   l:::::::l::::l~   や
 .l:::::::::;l::::::l                   l:::::ll;:::l^   れ
 ..l;;:::::::l;:::::;l  ○             ○.;l:::::l~:::l~   や
  ..L:::::;L::::l                 ;l:::::l;::::l~    れ
   ..l,,:::::l,:::,l,                ;l:::l'':::l''     ・
    '''l;;::::l,;::l,,     [ ̄ ̄      ,;l:::l''::''      ・
      '''';;;;;;;;;;;,,,,         ,,,;;;:l:::;'''''        ・
           ''''''';;;;;;;;;;;;;;;;;;;;'''''''
              /\           )
           ..^ヽ/  \ノヘ     三  )
           .. /    \        )
            .. ̄| ̄ ̄|~
             __|   |_
482nobodyさん:02/07/27 20:38 ID:???
糞コテ消えてくれないかなぁ。>>478-480
483nobodyさん:02/07/27 20:56 ID:???
コテハンを目の敵にしても、今はJAPH9PWAしかいない罠

固定ハンドル叩きたけりゃ、聞かれもしない低レベルな白痴話をぐだぐだ書くより、
コテハンのレスの技術的な間違い探しでもやった方が早いと思うよ。
484nobodyさん:02/07/27 21:49 ID:???
糞でも何でも良いから役立ちそうな事書いてくれたら嬉しい
(3:7=ネタ:罵倒 まで許容)
随分XSに熱心な様だけど、あれって必至になって使う価値有る?
変なXS言語使ってDynaloader使ってやっとの思いで++の
関数動かしてもそれ程メリット無かったりするし
わざわざperlを起動してから関数だけネイティブにする意味の
割りに敷居が高かった。
mod_perl入れてサクッっと常駐しちゃったよ (笑
後、6が出たらその苦労が水泡に帰しちゃうだろうから
出来たらParrotネタとかも書いてくれたら嬉しいな
ROMは結構覗いてるよん
485nobodyさん:02/07/27 21:59 ID:???
>>479
と言うかperl5.8をVCでコンパイルしてるのは何故? >リンク先の人
ActivePerl?
意味が全然理解出来ないんだけど
今からCygwinでやってみるけど
486nobodyさん:02/07/27 22:02 ID:???
うわっ、良く読んだらやっぱりtar玉からWINのバイナリ作ろうとしてるんだ
この人。。。
悲惨
487nobodyさん:02/07/27 22:23 ID:???
>>478
実際にやっていないことがすぐに分かる文だな(w
白痴なんだから無理しなくていいよ。
488jjcocodede:02/07/27 22:32 ID:KJ5wNO6P
jcode.pl使ってます。
別ファイルのままrequireするのが嫌なので、
ソース最下にコピーしてみました。

ローカルでソース内の文字をgetcodeするとSJISになりました。
サーバーに上げてから、getcodeをするとJISになりました。
ソースはSJISです。
なぜJISになるのでしょう。というかSJISになるようにアドバイス希望します。
489486:02/07/27 22:35 ID:???
おお! 5.8て全OS共通なんだな、初めてしったよ
と言うわけでBCC5.5.1でやったけど
あっけない程すんなり出来たぞ
READMEWIN32読んでdmake設定して実行しただけだ
VCは持って無いから分からないや
次はCYGWINでやってみよう
490nobodyさん:02/07/27 22:37 ID:???
VC++では、win32ディレクトリでnmakeするだけで終わります。
Perlのコンパイルもロクにできない >>478は消えてください。
491 ◆JAPH9PWA :02/07/27 22:41 ID:???
>>484
XSってそんな使いにくいかな。
まぁ確かに構文は独特だし奇妙な癖はあるしPerlAPIは難しいけど、別に必死というほどでもないような。
ポインタIVに変換してをblessするとC+ガベコレってな感じで結構面白いし。(遅いけど)
私は好きだな、XS。

Parrotネタはサッパリ分からないなぁ…_g...たん来てくれないかなぁ。
492nobodyさん:02/07/28 01:12 ID:???
>>488
以下の文字列でJISと判断してるだけのこと。

$re_jis0208_1978 = '\e\$\@';
$re_jis0208_1983 = '\e\$B';
$re_jis0208_1990 = '\e&\@\e\$B';
$re_jis0208 = "$re_jis0208_1978|$re_jis0208_1983|$re_jis0208_1990";
$re_jis0212 = '\e\$\(D';
$re_jp = "$re_jis0208|$re_jis0212";
$re_asc = '\e\([BJ]';
$re_kana = '\e\(I';
493ひろぽん:02/07/28 07:06 ID:???
こんしゅうのひろぽんはたいへんなのれしゅ!
ぱぁるをはじめたんでしゅがえいごばっかりでよめないれしゅよ〜!
どちたらいいんでしゅかねぇ

あびゃ
494nobodyさん:02/07/28 10:28 ID:NWB5Q2O0
配列の長さの取得の方法を教えて下さい。
おながいします。
495nobodyさん:02/07/28 11:40 ID:???
>>494
@manko=("tinko","kuso","onani");
$aho494=@manko;
print $aho494;

次あげたら殺す
496nobodyさん:02/07/28 11:44 ID:???
scalar
497nobodyさん:02/07/28 12:06 ID:???
ありがd
498nobodyさん:02/07/28 17:05 ID:???
リンク張るのはこれでいいですかな?

$message =~ s/(https?|ftp):([\x21\x24-\x3B\x3D\x3F-\x5A\x5F\x61-\x7A\x7E]+)/<A href="\1:\2">\1:\2<\/A>/g;
499nobodyさん:02/07/28 17:27 ID:???
>>498
>>1をよく読め。
500nobodyさん:02/07/28 17:37 ID:???
そんな感じ、微妙に間違えてるけど
s#(https?|ftp)://([^ ]+)#<a href="$1://$2">$1://$2</a>#g;

http://www.din.or.jp/~ohzaki/perl.htm
501498:02/07/28 18:37 ID:???
>500
http://openlab.ring.gr.jp/k16/htmllint/explain.html#excluded-url

ここを参考にして使ったらいけない文字以外にマッチさせるように書きますた。
あとm//内では$1は\1というふうにもかけます。
502nobodyさん:02/07/28 18:44 ID:???
後方参照するとき \1 とかって使えたっけか。
503nobodyさん:02/07/28 19:36 ID:???
>501
>あとm//内では$1は\1というふうにもかけます。

は?、オメーの書いてるのは s だろが糞ハゲ
第一宇宙速度で壁に激突して師ね!
504nobodyさん:02/07/28 19:37 ID:???
スラッシュも無いからどうせリンクにならねーんだよ
糞ハゲ異臭バカが
505nobodyさん:02/07/28 19:55 ID:NiNmHVdY
拡張子判別で
raとrarの区別ってどうするんですか?
拡張子はにててもかなり違うんですが、、、。
506nobodyさん:02/07/28 19:56 ID:???
>>505
ウ  ザ  イ   ! !
消  え  ろ   ! !
507505:02/07/28 19:58 ID:???
やっぱり夏ですか。
できたんでもういいです。
508nobodyさん:02/07/28 19:59 ID:???
>>507
君が  【夏厨】   なの!
OK?
509505:02/07/28 20:02 ID:???
>>508
てめぇは夏だからって調子に乗っとんなよ
510nobodyさん:02/07/28 20:03 ID:???
>>509
君の存在そのものが【猿】なの!
U see ?
511505:02/07/28 20:04 ID:???
>>510
君ういてるね。
猿は自分じゃん。
512nobodyさん:02/07/28 20:05 ID:???
中卒塗装工は中卒らしく珍走でもやってなさいって
苦手な脳みそ運動は苦痛でしょう
right?
513505:02/07/28 20:06 ID:???
>>512
生ごみはとっとと処分されてね。
じゃ。
514nobodyさん:02/07/28 20:07 ID:???
>拡張子判別で
>raとrarの区別ってどうするんですか?
>拡張子はにててもかなり違うんですが、、、。

この質問の頭の悪さはTNT火薬500万トン級の破壊力があります
そんな君は絶滅危惧種並みの、イッツ馬鹿モンキーなんですよ
OK?
515nobodyさん:02/07/28 20:08 ID:???
>raとrarの区別ってどうするんですか?

もう見てるコッチが恥ずかしくなってしまう。
おまけに逆切れ
バカな事をバカだと指摘してあげたのに
「夏ですね」だって  (惨
ああ、バカのココナッツパラダイス
バカのオナニーは永遠に続くのであった
516nobodyさん:02/07/28 20:10 ID:???
>>515
痛いクソ野郎がほざくなYO!
517nobodyさん:02/07/28 20:13 ID:???
>>513
生ゴミに失礼です、生ゴミはエネルギーも再生資源にもなり得ます
2chで
>raとrarの区別ってどうするんですか?
と聞くホームラン馬鹿には再生の余地も有りません
絶望的です

>>516
痛いクソ野郎に失礼(略
518nobodyさん:02/07/28 20:25 ID:???
rar$
ra$
519( ´,_ゝ`):02/07/28 20:28 ID:???
505 :nobodyさん :02/07/28 19:55 ID:NiNmHVdY

拡張子判別で
raとrarの区別ってどうするんですか?
拡張子はにててもかなり違うんですが、、、。
520nobodyさん:02/07/28 20:32 ID:???
痛い質問に対しては、放置するか、やんわりたしなめる程度に抑えた方が。
いちいち煽ってレスが流れるのは勿体ない。
521nobodyさん:02/07/28 21:04 ID:ODyMXFdC
>503
s///でした。

>504
スラッシュは含まれています。アスキーコードを勉強してください。
522nobodyさん:02/07/28 21:16 ID:???
>>521
うるせーっつってんの 恥さらし犬畜生が
http:www.hoge
なんてURLはアルツハイマーのお前の脳内にしか存在しないの
ここは現実世界のBBSですよ
妄想の旅に帰りなさい
523nobodyさん:02/07/28 21:18 ID:???
クソの分際で生意気なチンポ猿だな全く
ムカつくぜ
524nobodyさん:02/07/28 22:05 ID:???
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____
525nobodyさん:02/07/28 22:31 ID:???
>501
http://www.din.or.jp/~ohzaki/perl.htm
折角書いたんだからリンク先を良く読むように
もし本当に存在するURIのみを抽出したいのであれば
498では全く不完全。
どうせ不完全なのだから、500では簡単の為に書いた

あと、¥1はこの場合あなたの望んだ動作をしないと
思ったので、間違えてると書いた
分かってるなら聞くなよっつー事だ
526nobodyさん:02/07/29 02:02 ID:3jabpJuB
755とか777とか言うの
これどうやって変えるの?
出来るだけくわしく頼むよ
527nobodyさん:02/07/29 02:08 ID:???
板違い
528nobodyさん:02/07/29 02:24 ID:3jabpJuB
PERLだっつーの(ワラ
529nobodyさん:02/07/29 02:26 ID:???
キチガイ。
530nobodyさん:02/07/29 02:26 ID:yQQSPnn5
531nobodyさん:02/07/29 02:26 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
532nobodyさん:02/07/29 02:29 ID:3jabpJuB
だから

755とか777とか言うの
これどうやって変えるの?
出来るだけくわしく頼むよ

だってのに(ワラ
533nobodyさん:02/07/29 02:34 ID:???
534nobodyさん:02/07/29 14:09 ID:???
念じろ
535nobodyさん:02/07/29 14:18 ID:???
>>532
s///;使って置き換えれば?
536nobodyさん:02/07/29 15:32 ID:???
>>535
ありがと。おかげで777に変えることができたよ。
537nobodyさん:02/07/29 18:20 ID:???
掲示板をつくっているのですがどうも%FORMの中に書き込みデータが入ってないんです
原因がわからずこまっています以下がそのコードの一部です

<table border="2" cellpadding="10" bgcolor="#FFFFFF" width="100%"><tr><td>
<b>新規記事作成フォーム</b>
<form method="POST" action="$script">
<input type=hidden name=cmd value="write">
<table width="550">
<tr><td align="left" width="50">名 前</td>
<td align="left" width="100"><input size="40" type="text" name=name></td></tr>
<tr><td align="left" width="50">E-mail</td>
<td align="left" width="200"><input size="40" type="text" name=email></td></tr>
<tr><td align="left" width="50">題 名</td>
<td align="left" width="100"><input size="40" type="text" name=title></td></tr>
<tr><td align="left" width="50">U R L</td>
<td align="left" width="200"><input size="40" type="text" name=url></td></tr>
<tr><td>コメント</td><td align="left" colspan="3">
<textarea name=message rows="5" cols="61"></textarea><br>
<input type=submit value="新規投稿"></form>
</td></tr></table></td></tr></table>
538nobodyさん:02/07/29 18:22 ID:???
そしてプログラムのトップのほうに

if($FORM{'cmd'} eq 'write') {&write;}

としてるんですが新規投稿ボタンを押しても&writeに飛んでくれないのです

ためしにprint "$FORM{'cmd'}";とやってみましたが空白でした。
539nobodyさん:02/07/29 18:24 ID:???
何が原因なのでしょうか?
540nobodyさん:02/07/29 18:47 ID:???
>>537
フォームから送られてくるデータはどんなふうにばらしてるのよ
541FLASHのNOWLOADINGのような動作したい:02/07/29 19:38 ID:Ph2A5ZX/
顧客名簿のメールアドレスへ順番にメールを送信するスクリプトを作っています。
メール送信の方法としては、メールアドレスが入った@MAILという配列に対して、
foreach $mail @DATA{
#$mailに対してその都度sendmailをオープンして送信
#1秒スリープ
}
という感じです。
サーバーの規定でsendmailは多くとも1秒に一通の割合で、という注意があるため、
1秒スリープしています。

流れとしてはメール本文編集画面から、送信ボタンを押すと上記のように
メール送信を始めて、全部終わったところで「送信完了しました」という画面を出すのですが、
送信件数が少ないうちはいいのですが、件数が多くなってくると別にエラーが起きているわけでもないのに、
タイムアウトになるのか、「送信完了しました」画面が出ません。
(エラーならinternal servererrorになりますが、画面はタイムアウトの時と同じ画面です。)

そこで、とりあえずFLASHで良くやるNOW LOADING...見たいな感じで、
「現在送信中」の画面を出しといて、バックで送信処理を続けて、送信が終わったら「送信完了しました」
という画面に移動したいのですが。

現在やり方が全く思いつきません。
542FLASHのNOWLOADINGのような動作したい:02/07/29 19:41 ID:Ph2A5ZX/
foreach $mail @MAIL{
#$mailに対してその都度sendmailをオープンして送信
#1秒スリープ
}

配列の名前間違えました。
543FLASHのNOWLOADINGのような動作したい:02/07/29 19:47 ID:Ph2A5ZX/
この処理を行うブロックにきたら、

print "Location: nowloading.html";
でとかにとばして「送信中」と書いたHTMLに飛ばして、

foreach $mail @MAIL{
#$mailに対してその都度sendmailをオープンして送信
#1秒スリープ
}
とやって、そのあとに

「送信完了」画面を出す。

でいけるかな?ちょっとやってみますが。

544FLASHのNOWLOADINGのような動作したい:02/07/29 20:00 ID:Ph2A5ZX/
nowloading.html
が表示されたまま。
無理でした。
545nobodyさん:02/07/29 20:05 ID:???
>>541
あげんな。
思うのはここへきてる人間がもしあなたにそれを教えてさ
あんたが儲かるわけでしょ?バイトか仕事かしらんけど。
露骨過ぎだよ、、アホだ。あんたが俺になんかしてくれるのか?
なら答えてやるぞ。
それともネタか?違うだろうなあげてるもんな。
546スレ違いだよな:02/07/29 20:39 ID:???
Nowloadingでセッション閉じるから無理だよ
メタタグ入れて読ませたり出来るけど、共用してるだろから
ユニークIDとかトランザクション辺りでカッコ悪くなるでしょ
それがCGIの限界。
と言うわけで、Nowloading.htmlの推奨内容
どうせsendmailの先で死ぬ事も有るんだし  (笑

メールを送信しました、上手く行くかどうかは分かりません (^o^)/~~
547nobodyさん:02/07/29 20:49 ID:???
>>540

my($name,$email,$url,$title,$message) = ($FORM{'name'},$FORM{'email'},$FORM{'url'},$FORM{'title'},$FORM{'message'},);

こんな感じですがこれ以前に

if($FORM{'cmd'} eq "write")に反応しないんです
548nobodyさん:02/07/29 20:54 ID:???
>547
どうやって$FORM{'cmd'}に入れてるんだ?
勝手に入るとか思ってたりはしないよな?
まさかそこまで馬鹿じゃないよな?
夏とは言えそこまで馬鹿はいないと信じたいな。
549nobodyさん:02/07/29 21:21 ID:zYJTXqe4
perlで書いたcgiの中でファイルを作成すると、
所有者がapacheとなります。この所有者は好きなのに変えられないのですか?
550474:02/07/29 22:10 ID:???
>>475
マニュアルはperldocやweb等いろいろと見てみたのですが、全然ロックに関する
記述が無いんです。(T_T
しかし、dbと名が付いているくらいだからロックくらいはしてくれるだろう、
ということでとりあえずsdbmでやってみようかな、って思ってます。
でも微妙に気になる。(w
551nobodyさん:02/07/29 22:15 ID:???
>>547

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
local(@pairs) = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([\dA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
552nobodyさん:02/07/29 22:45 ID:???
>>545
振込先でも晒しとけば
553nobodyさん:02/07/29 22:45 ID:7AOu/QAw
$right =~ s/</&lt;/g;
をウマーク変えて
□□□(文字列)→<font color="#ff0000">★</font>
な感じに出来ないでしょうか?
554nobodyさん:02/07/29 22:47 ID:???
出来るよ。
555nobodyさん:02/07/29 22:50 ID:7AOu/QAw
>>554
やり方を教えて頂ければこちら側としては非常にありがたいのですが…
556nobodyさん:02/07/29 22:52 ID:???
>>545
漏れに金くれるんならいい案提示してやるぞ!
print ".";
557nobodyさん:02/07/29 22:53 ID:???
>>541だった。すまん。
558nobodyさん:02/07/29 22:54 ID:???
>>555

$right =~ s/□□□/<font color="#ff0000">★</font>/g;
559nobodyさん:02/07/29 22:55 ID:???
>558
いんたーなるさーばーえらー
560nobodyさん:02/07/29 22:57 ID:7AOu/QAw
>>555
ありがとうごだいます。
試してみます。
561555:02/07/29 22:58 ID:7AOu/QAw
>>559
だめなんですか?

↑のは>>555じゃなくて>>558
562nobodyさん:02/07/29 22:59 ID:om5W19We
Perlでプログラミングを勉強してます。
本はリャマ第2版、 Vine2.5+Bashでしゅ。
第三章の問題1ですが、要は、キーボードから
111
222
333
(C-d)←EOFを入れる。
と入力したら、
333
222
111
と表示するプログラムを書け、という主旨だと思います。
解答は、
print "Enter the list of strings\n";
@list = <STDIN>;
@reverselist = reverse @list;
print @reverselist;
となってます。オイラの答は、
@strigns = <STDIN>;
@result = reverse(@strings);
print "@result";
です。変数名と1行目は本論でないので置いとくとして、問題はこれを実行すると、
333
222
111
と2行目以下、行頭にスペースが入ってしまうことです。
違いは、print のトコで、" " で括るか、括らないかの違いなんすが、
この例では、" " はどのような役目を果たしているのでざんしょ?
それと、reverseの引数はカッコ無しでも有りでも変わらないようなのですが、
あっても無くてもいいのでしょうか?
よろしこおながいします。
563nobodyさん:02/07/29 23:06 ID:???
>>561
わりぃ。
間違えてた。

$right =~ s/□□□/<font color="\#ff0000">★<\/font>/g;
564555:02/07/29 23:08 ID:7AOu/QAw
>>563
再度トゥライしてみます。
565555:02/07/29 23:19 ID:7AOu/QAw
>>563
出来ました。
本当にありがとうごだいました。
566nobodyさん:02/07/29 23:20 ID:???
>>562
と言うか、配列を ” で囲んでprintfに投げると
デフォルトの区切り子を挿入しちゃうんですよ。
$. と $” だったかを弄って見れば分かる筈

@list = qw(hoge foo bar);
print @list;
print "\n";
print "@list";

567nobodyさん:02/07/29 23:23 ID:???
>>562

"" は普通の文字列の書き方。変数展開とか \ のエスケープとか有りの。配列
変数も展開してくれるそうで。

3.7 配列を文字列中に展開する
「同様に、配列変数から…間にスペースをはさんで、順番に展開されます」

だそうです。実際には、特殊変数 $" の値で区切られるはず。"" で囲まずに
print する場合には、$, (デフォルトは空文字列) で区切られます。

> それと、reverseの引数はカッコ無しでも有りでも変わらないようなのですが、
> あっても無くてもいいのでしょうか?

この場合には無くてもいいけど、必要な場合もあるらしい。この辺は、漏れも
よく分らない。考えるのが面倒なので、大抵 () を付けるようにしてるけど。
568562:02/07/30 00:12 ID:hgHyxKDS
>>566-567
なるほど。
$" と $, はまだ勉強していないのでよく分からないけど、
" " の有無による違いは何となく分かりました。
引数のカッコ、とりあえず付けとけば問題無し、ということで
原則かっこ付きで逝きます。
どうもありがとうございました。
569nobodyさん:02/07/30 10:04 ID:???
記事noを取り出したいとき
@dataに

2<>名無しさん<>mail@***.com<>http://www.***.com/<>てすと<>てすと<>
1<>名無しさん<>mail@***.com<>http://www.***.com/<>てすと<>てすと<>

の2行がはいっていて1行目の「2」だけを取り出したいのですが

$no = (split(/<>/,$data[0])[0]);

とやってもできませんでした。どうやればいいのでしょうか?
570nobodyさん:02/07/30 10:07 ID:nD+VMZzM
http://www.ruitomo.com/~gulab/index.html
ここでスレを調べなされ
571nobodyさん:02/07/30 10:16 ID:???
perlで書いたcgiの中でファイルを作成すると、
所有者がapacheとなります。この所有者は好きなのに変えられないのですか?
572nobodyさん:02/07/30 10:48 ID:???
>>571
変えられない。
573nobodyさん:02/07/30 10:56 ID:???
配列から別の配列に同じ物を一気にぶち込みたいときは、
@new = @old;
でいいですか?
試したら一応出来ましたけど。
574nobodyさん:02/07/30 11:22 ID:???
$hoge =~ s/\Q$pair\E/<b>$pair<\/b>/g;
これの \Q \E の意味が良くわからないです。
575nobodyさん:02/07/30 11:30 ID:???
>>571
基本的に変えられませんが、mo-musu だったら変更可です。

やり方:
  `chown mo-musu.mo-musu filename`;
576nobodyさん:02/07/30 11:50 ID:???
全角英数字を半角英数字に変えたいので↓にあるのを引用して
www.kiwi-us.com/~mizusawa//penguin/DATA/dlcount/dlcount.cgi?file=macwwwsrch3097_fol.zip
&jcode'convert(*word, "sjis");
こうやったんですけどうまくいかないです。
577nobodyさん:02/07/30 11:58 ID:???
>>576
&jcode'convert(*word, "sjis", "", "mo-musu");
578nobodyさん:02/07/30 12:27 ID:???
579nobodyさん:02/07/30 12:43 ID:???
>>575=577
氏ね氏ね氏ね氏ね氏ね
580576:02/07/30 13:37 ID:???
perlで日本語を使う時の注意がわかってきました。
で、今は普通にSJISでperlを書いています。
>perl スクリプトを EUC-JP で書き, 漢字コードが EUC-JP である日本語を処理するというのが、
>perl で日本語を扱うときに一番問題が起きにくい方法です。
という事はスクリプトを保存する時のコードをEUCに変更した方がいいんでしょうか。
FORMのデコードも全部EUCに変換しなきゃいけないですよね。
581nobodyさん:02/07/30 13:51 ID:???
>>580
調子に乗るな! >>1を読め!
582576:02/07/30 13:59 ID:???
す、すいません!調子に乗ってしまいました!!
583nobodyさん:02/07/30 14:39 ID:???
>>582

キエロ

二度と来るなよ

来たらおまえのサイト荒らすべ

584nobodyさん:02/07/30 19:11 ID:???
掲示板で

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

と長い半角文字を入力すると記事を表示する枠が勝手に広がってしまいます。
どうすれば枠の幅はそのままで記事は改行されてきれいに収まるように出来るでしょうか?
585nobodyさん:02/07/30 19:22 ID:???
>>584
cssつかえ
586 ◆FANY.jpg :02/07/30 20:39 ID:???
画像ファイル(*.jpg)を開くと、画像毎に見た人の数をカウント
したり、見た人のホスト名を記録するフリーのPerlを探してます。
どこかにありませんか?教えてください。

プログラムは組めませんが、設置する基本的な知識はあります。
よろしくお願いします。
587nobodyさん:02/07/30 21:00 ID:???
>プログラムは組めませんが、設置する基本的な知識はあります。

だけど検索することはできないんだね
588nobodyさん:02/07/30 21:11 ID:w4X2IPfe
@INCにパスを追加する方法教えてください・・・・
589nobodyさん:02/07/30 21:24 ID:???
#!/usr/bin/perl -I
590nobodyさん:02/07/30 22:02 ID:???
>>586

スレ違い
591 ◆FANY.jpg :02/07/30 22:51 ID:???
>>587
検索してるんだけど、見つからないんだな。
カウントするヤシはイパーイあるんだけど、ログを残すのが無い。

>>590
どこで聞けばいいのだ?
プログラム板は初めてで、初心者の文字があったもんで・・・
592nobodyさん:02/07/30 23:08 ID:???
my の事で質問です。

my $hoge;
my $hoge2;

my $hoge, $hoge2;
はどう違うんですか?
検索もして自分でも試しましたが答えを見つけることが出来ませんでした。
ご教授お願いします。
593nobodyさん:02/07/30 23:56 ID:???
>>592
って、全然違うじゃん。
> my $hoge, $hoge2;
myが効いてるのは$hogeだけ。my( $hoge, $hoge2);で上と同じ。
594592:02/07/31 00:59 ID:???
>>593
ありがとうございました。
523=Perlの神!
595nobodyさん:02/07/31 01:01 ID:???
>>523

523 名前:nobodyさん 投稿日:2002/07/28(日) 21:18 ID:???
クソの分際で生意気なチンポ猿だな全く
ムカつくぜ
596nobodyさん:02/07/31 01:04 ID:???
>>594
感謝にギャグってくれるとはなかなか、、
597nobodyさん:02/07/31 01:24 ID:S7Hc+7gV
お知恵を貸してください。

@X = ("A","B","C","D")

があって、BとCの間にEをつっこむ何かよい手はないでしょうか。
結果的に、

@X = ("A","B","E","C","D")

を作りたいのです。よろしくお願いいたします。
598nobodyさん:02/07/31 01:39 ID:I1Mr+tD0
splice
599nobodyさん:02/07/31 01:40 ID:???
>>597
@X = ("A","B","C","D");
splice(@X, 2, 0, 'mo-musu');
600nobodyさん:02/07/31 02:54 ID:???
use LWP::Simple;
これ以外でWEBページを取得する方法はありますか?
現在借りているサーバーにはモジュールがありやがりやせん。
601nobodyさん:02/07/31 03:06 ID:???
>>600
面倒なのでコピペ
お前これみて分るか?
use Socket;
$r1=shift(@ARGV);
$html=shift(@ARGV);
$port = 80;
$host = "$r1";
$filename = "$html";
$ipaddress = inet_aton("$host");
$address = pack_sockaddr_in($port,$ipaddress);
socket(SOCKET,2,1,0);
connect(SOCKET,$address);
select(SOCKET);
$ |= 1;
select(STDOUT);
print SOCKET "GET $filename HTTP/1.0\r\n";
print SOCKET "HOST: $host";
print SOCKET "User-Agent: Q51-A";
print SOCKET "Accept-Encoding: gzip";
print SOCKET "\r\n\n";
while(<SOCKET>){
print $_;
}
602nobodyさん:02/07/31 03:13 ID:???
暇だしいいか、、
LWPは標準モジュールじゃないです。
ActivePerlとかLinuxのディストリには入ってるがな。
ラクダ本くらいは買え。6章にソケット例が書いてある。
603nobodyさん:02/07/31 03:30 ID:y5qu4VWq
引数の文字列の長さを求めたい時、PHP4では"strlen()"関数にて

$a = "abcd";
$a = strlen($a);

echo ("$a\n");

という風な記述をすると思うのですが、これをperlに置き換えたい場合はどの様にすれば宜しいのでしょうか?
604nobodyさん:02/07/31 03:35 ID:???
現在perlで quota の設定ができるものを作成中なのですが、
通常であればシェルで

edquota ユーザー名 (Enter)

でエディタが起動して

Disk quotas for user okada (uid xxx):
Filesystem blocks soft hard inodes soft hard
/dev/hdax xxx xxxx xxxx xx x x

上記のテンプレートを編集する事になるのですが、
これを Perl のスクリプトで変更することはできないのでしょうか?

exp) perl ./edquota.pl ユーザー名 blocks値 soft値 hard値 inodes値 soft値 hard値・・

Linux Slackware8.0
Perl5.6 を使用しております。

それでは宜しくお願いいたします。
605上げたらいかんぜよ:02/07/31 03:37 ID:???
>>603
length関数

$hen="tinko";
$kuso=length $hen;
print $kuso;
606nobodyさん:02/07/31 03:40 ID:???
>>604
マルチ近視
それでは宜しくお願いいたします。ってのがネタっぽいからなぁ〜
文章書き換えてプログラム板に逝け
607nobodyさん:02/07/31 07:53 ID:y2pKIymG
>605
示して頂いた例通り(変数名は別のものですがw)試して、巧く機能させる事が出来ました。お蔭さまで助かりました。

何分、糞imodeに対して別途"Content-Length"値を与えなならんと聞いたものですから‥
608nobodyさん:02/07/31 07:55 ID:???
んげ、ageたらアカンかったんでしたね‥
609nobodyさん:02/07/31 08:45 ID:???
>>585

CSSでどうやってやるのですか?
610nobodyさん:02/07/31 08:49 ID:???
>609
CSSスレで聞け。
611nobodyさん:02/07/31 09:13 ID:phubboAl
http://www.afz.jp/%7En_mattun/2ch/swf/R3_temp.html

これを見れない原因として、何が考えられますか?
612nobodyさん:02/07/31 09:24 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
613nobodyさん:02/07/31 09:35 ID:qpj2RbUE
サブルーチンファイルの書き方と
本体からの呼び方の
決まりが書いてあるページが見つかりません。
教えて下さい。
614613:02/07/31 10:35 ID:qpj2RbUE
補足
同じファイルにサブルーチンを書いて呼ぶ方法はわかります
別のファイルにサブルーチンを書いて呼び出したいんです
615nobodyさん?:02/07/31 11:23 ID:???
>>613
require で読み込むのだ。
読み込んだ後は、普通にサブルーチン呼び出すと。。
616nobodyさん:02/07/31 11:51 ID:UyjmARAz
誰か教えてください
ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd
でwin2000にmod_perlを組み込みたいのですが、、
Error installing package 'http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd'
: Could not locate a PPD file for package http://theoryx5.uwinnipeg.ca/ppmpackag
es/mod_perl.ppd
このようなエラーが出ます。URL移動したのでしょうか?
617nobodyさん:02/07/31 11:58 ID:???
>616
サーバがメンテ中とかやないの?
618nobodyさん:02/07/31 12:32 ID:???
>>613
詳細は省き、必要最低限のみ。
サブルーチンの書かれたファイルをSub.pmとする。
その中のサブルーチンをsubとする。

本体の頭に
use Sub qw(sub);
呼ぶときは単に
sub();

サブルーチンファイルの頭に
package Sub;
use Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(sub);

とやって、あとは普通に定義する。
sub {}

619nobodyさん:02/07/31 12:39 ID:???
>>592
>> my $hoge, $hoge2;

ラクダ本216より
この演算子(my)はコンマよりも優先順位が高いので、2個以上の変数を指定する場合
には、変数の並びをカッコで囲まなければならない。
620nobodyさん:02/07/31 12:42 ID:???
>>588

use lib 'pass';
で、@INCの頭にpassが入る。
621613:02/07/31 12:46 ID:???
>>615
で、できますた!

test_sub.cgiの記述

sub test{print"てすと";}
1;


test.cgiの記述
#!/usr/bin/perl

require './test_sub.cgi';

&test;

>>618
更に高度な技のご伝授で感激です。
これから解析して勉強します。

お二神様ともありがとうございます。
622nobodyさん:02/07/31 13:27 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
623nobodyさん:02/07/31 13:31 ID:???
2重書き込みの判定で

if($tmp[2] eq $name && $tmp[6] eq $comment) {&error("二重投稿はできません");}

とやったのですが反応しないため

if(($tmp[2] == $name) && ($tmp[6] == $comment)) {&error("二重投稿はできません");}

とやったらできるようになりました。

しかし他の人のコードを見ると前者のようにしてあるのですが
なぜか自分のでは反応しませんでした。

原因がなにかわからないでしょうか?
624nobodyさん:02/07/31 13:31 ID:PJX78SBC
$tmp[2]には一番最近書きこまれた記事の投稿者名が、
$tmp[6]には1番最近書きこまれた記事のコメントが格納されています。

ログファイルに書きこむ際は

my($tmp) = "$no<>$subject<>$name<>$email<>$url<>$time<>$comment\n";

open(DATA,">$logfile") || exit;

unshift(@data,$tmp); print DATA @data; close(DATA);

のようにしています。

一番最近書きこまれた記事の投稿者名やコメント情報は

open(DATA,"$logfile") || exit;
my(@data) = <DATA>; close(DATA);

my(@tmp) = split(/<>/,$data[0]);

のようにして取り出しています。
625nobodyさん:02/07/31 13:34 ID:???
>624
\nの扱いがどうなってるかだな。
ログの保存を
my($tmp) = "$no<>$subject<>$name<>$email<>$url<>$time<>$comment<>\n";
に変えて、上の方法にしてみたら?
626nobodyさん:02/07/31 13:35 ID:???
>>623
たとえば、$tmp[2]の値が0で、$nameの値が空だったらありえーる!
627nobodyさん:02/07/31 13:39 ID:???
ログファイル読み込むときに末尾の改行とってないから$commentとは等しくない。
628nobodyさん:02/07/31 14:05 ID:???
HTML::Templateのループ処理をネストするとき、

$template->param('ROW',[
   { name => 'Bobby',
    nicknames => [
       { name => 'the big bad wolf' },
       { name => 'He-Man' },
             ],
    },
  ],
);

みたいな処理だと、変数の数が必然的に決まってしまうんで
配列を使って、ネストしたnicknamesに入れるハッシュの数を自由に操作したいんですけど、
629nobodyさん:02/07/31 14:06 ID:???
my @name = qw('the big bad wolf' , 'He-Man'........);
while (@name) {
 my %row_data;
 $row_data{'NAME'} = shift @name;
 push(@nicknames, \%row_data);
}

 $name = 'Bobby';
 $nickname = 'He-Man';
 my %row_data;
 $row_data{'NAME'} = $name;
 $row_data{'NICKNAME'} = $nickname;
 push(@loop_data, \%row_data);

まではいいんですが、@loop_dataに@nicknamesを入れるにはどうすればいいんですか?
push(@loop_data, \@nicknames); などではダメですが
それとも他に配列をネストするための何らかの方法が?
630nobodyさん:02/07/31 14:12 ID:PJX78SBC
if($tmp[2] eq $name && $tmp[6] eq $comment) {&error("二重投稿はできません");}

my($tmp) = "$no<>$subject<>$name<>$email<>$url<>$time<>$comment<>\n";

こうやってみたんですがだめでした。

631nobodyさん:02/07/31 14:55 ID:???
>>630
>>627読んだ?
632nobodyさん:02/07/31 15:11 ID:PJX78SBC
それは

my(@tmp) = split(/<>/,$data[0]);
$tmp[6] =~ s/\n//;
if($tmp[2] eq $name && $tmp[6] eq $comment) {&error("二重投稿はできません");}

というようにしろということでしょうか?


633nobodyさん:02/07/31 15:22 ID:PJX78SBC
やってみたのですがうまくいきませんでした
634nobodyさん:02/07/31 15:33 ID:???
もうチョイ頭使えって
あんたの財布の中身は他人には解らん
変数の中全部吐き出してみろよ
635comeoneverybody:02/07/31 16:20 ID:JJGI7Csk
単純なところだと思うのですが、

添付ファイル付きメールををセンドメールで送るんですが、
@filesの部分に添付ファイルを入れれます
stdio::sendmail(\%header, $body, $html_body, 0, @files);

こうするとうまくいかないのですが、プログラムの別の部分で
@filesの中身を吐き出してやって、コピペしてやるとなぜかうまくいきます。
stdio::sendmail(\%header, $body, $html_body, 0, '../../aaa.txt',);

すごく単純なことだと思うのですが、なにか解決のヒントください。
おながします。
636nobodyさん:02/07/31 16:24 ID:???
>>635
@filesだと配列の数。
637nobodyさん:02/07/31 16:38 ID:PJX78SBC
$data[0]の中身は

1<>書き込みテスト<>名無しさん<>***@***.com<>http://www.***.com/<>>2002/07/31 15:14:19 (Wed)<>書きこみテスト<>

です
638comeoneverybody:02/07/31 16:47 ID:JJGI7Csk
>>636 ありがとうございます。

すると配列そのものを羅列させるには
stdio::sendmail(\%header, $body, $html_body, 0, "@files");
とするべきということですか?
639nobodyさん:02/07/31 16:53 ID:???
このスレを見ようとすると

http://server.maido3.com/

へ飛ばされるんだけど俺だけ・・?
640nobodyさん:02/07/31 17:05 ID:???
>>638
web powerのstdio.plライブラリーですか。
sendmailのパスが無いようなきがするけど。
その@fileの内容が知りたい。
641nobodyさん:02/07/31 17:06 ID:???
642comeoneverybody:02/07/31 17:13 ID:JJGI7Csk
>>640
>web powerのstdio.plライブラリーですか。
あ、そうです。
sendmailのパスはとうの前に記述してます。
ですから、添付されて無いメールは届きますし、
@filesの中身を吐き出してコピペするとちゃんと添付されて届くんですよ。
中身は
'../aa/1234.txt', '../aa/1235.txt', '../aa/1236.txt',
こんな感じです。
643nobodyさん:02/07/31 17:33 ID:9/C2v2FP
掲示板で、データをテキストファイルにしてます。
タグが禁止なので<,>は<と>に直してデータに保存しています。
で、投稿内容を表示する時は、
$naiyou =~ s/<br>/<br>/g;
こういう感じで改行部分だけ直して表示してます。
で、投稿内容を修正する機能があって<textarea>$hoge</textarea>
という感じで表示して入力してもらいます。
この時、逆に文字の中に<br>が入ってしまって変です。
なので今度は<br>を改行コードに戻して表示しなきゃいけません。
改行コードはOSによって違うので
$naiyou =~ s/<br>/\n/g; # unix
$naiyou =~ s/<br>/\r\n/g; # win
$naiyou =~ s/<br>/\r/g; # mac
という風にOSによって書き分けないといけないですよね?
OSはジャバスクリプトで分ければいいってことでしょうか。
644nobodyさん:02/07/31 17:34 ID:???
http://www-power.net/cgi/other/library/stdio/stdio.pl

これかな、何か間違えてるんじゃ無いの?
(\%header, $body, $html_body, 0, '../aa/1234.txt','../aa/1235.txt', '../aa/1236.txt');

こうしたらどうなるの?
645nobodyさん:02/07/31 17:42 ID:???
>>643
unixだけでいいよ。
646nobodyさん:02/07/31 17:53 ID:???
>>643
なぜどのOSでも未知のサーバのテキストが改行して読めてるか分かる?
647480:02/07/31 18:12 ID:???
>>491 なんだ ◆JAPH9PWAはgunzipの弟子だったのか?
「コテハンの騎士は一人残らず皆殺しだ(´・ω・`)」(←SWのみすぎ)
ム板Perl6スレでの君の活躍は見事だ。放置プレイマンセーだな(少尿
>>490
あぁ俺英語読めんからいまだにコンパイルできん。
だいたいnmakeうってもできんぞ。詳しく教えろ。
648480:02/07/31 18:14 ID:???
>>484のリクに答えて「よーしパパ今日はパロッチャウゾー♪」
ParrotはまえLinuxでmakeできんで泣いたがなぜかCygwinでコンパイルできたよ。
名前しか聞いたことなかったけどおもろそうだな。
とりあえず上げとく(Cygwinとgccまわり&bisonが動けば誰でもコンパイルできる)
http://hiero_pl.tripod.co.jp/parrot.exe
http://hiero_pl.tripod.co.jp/testparrot.bin [parrotテストコード]
↑ホントはtestparrot.pbcだがなんかうまくダウソできんので拡張子はbinにした。
http://hiero_pl.tripod.co.jp/ index.
それなりに向上心があるやつなら.EXEみりゃだうそしてちょっと試すくらいする
だろうからな、、というか俺がそうだ。なんでPerl6スレの糞どもはそういうこと
(物をうぷすること)ことすらせんのかな?
MLでオナ○ーが癖になると怖いな、そうだろJAPH9PWA。
649480:02/07/31 18:17 ID:???
::Parrotの中身-解説【2日間眺めただけなので間違ってるかもしれん】
*.p6 //perl6 のコード ->parrot/languages/perl6/perl6[perlスクリプト] 使用
*.colac //C#っぽい ->parrot/languages/cola/colacc.exe 使用
*.imc //.,,pasmとなにが違うの? ->parrot/languages/imcc/imcc.exe 使用
*.pasm //、、、アセンブラ? ->parrot/assemble.pl 使用
*.pbc //perl byte Code ->parrot/parrot.exe 使用

[colac の流れ]
./colacc.exe kusokote.colac =>a.imc
./imcc.exe a.imc =>a.pasm
./assemble.pl a.pasm => a.pbc
./parrot.exe a.pbc [実行]
650480:02/07/31 18:19 ID:???
[perl6 の流れ]
./perl6 test.p6 ->test.imc test.pasm test.pbc 生成 ->test.pbc [実行]

*assemble.pl自体はXSとかつかったPerlスクリプトでないのでActivePerlでも実行できた(はず)
perl6もActivePerlで動きそうだけどまぁ試したときは動かんかった。
まぁassemble.plが動けばparrot.exeを試すことぐらいはできるはず。
perl6についてはム板perl6スレに行けば参考リンクが最初に貼られてたので
そっちをミテちょんまげ!。
651630:02/07/31 19:02 ID:???
どなたかー・・
652597:02/07/31 19:09 ID:S7Hc+7gV
>598,599

ありがとうございました!
出来ました!!
653nobodyさん:02/07/31 19:13 ID:GgEH/D5c
>>651
上にも書いてるじゃないか
$foo eq $bar
が真にならないのは$fooと$barの中身が違うからだよ
print 関数の使い方検索して出力してみろよ
もし、同じ文字列なのに偽になるんだったら
サーバの管理者に聞きなさい
654>651:02/07/31 19:24 ID:???
655comeoneverybody:02/07/31 19:27 ID:JJGI7Csk
>>644 さん
そそ、それです。
で、いまやってみましたら上手く行きました。
(\%header, $body, $html_body, 0, '../aa/1234.txt','../aa/1235.txt', '../aa/1236.txt');
これは上手くいくんですが、配列にしたときに上手くいかないんですよ。
656nobodyさん:02/07/31 19:32 ID:qZ05OEOA
>>645
本当にUNIXだけでいいんですか?
出来れば理由を教えていただきたいです。

>>646
いえ、わからないです。
657nobodyさん:02/07/31 20:00 ID:???
>>655
ホントに試したの?
$aa = '../aa/1234.txt'; $bb = '../aa/1235.txt';
(\%header, $body, $html_body, 0, $aa,$bb);
これならどうなるの?
配列の使い方知ってる?

>>656
それはクライアントの仕事だから、その為にContent-typeがあります
HTML書く時に一々ジャバスクリプト? でクライアントのOSを判定
しますか?
そんな事しなくてもクライアントがソースを見るとちゃんと置換されて
ますね
何故ならそれはブラウザちゃんのお仕事だからです
658comeoneverybody:02/07/31 20:18 ID:JJGI7Csk
>>657さん
試しました。こっちは必死ですから。
本気でperl始めてまだ2週間です。
配列もなんとなく使ってはいたんですが。

@files=(@files,"'../aa/$form{$my}.txt',");
こんな感じで作ってます
659comeoneverybody:02/07/31 20:22 ID:???
>>657さん
それも行けました
660630:02/07/31 20:25 ID:???
>>上にも書いてるじゃないか
>>$foo eq $bar
>>が真にならないのは$fooと$barの中身が違うからだよ
>>print 関数の使い方検索して出力してみろよ
>>もし、同じ文字列なのに偽になるんだったら
>>サーバの管理者に聞きなさい

出力しても同じ文字でした。ローカルでテストしてるので鯖管は自分です
661 ◆JAPH9PWA :02/07/31 20:33 ID:???
コレでも同じ?
print unpack('C*', $foo), "\n";
print unpack('C*', $bar), "\n";

662657:02/07/31 20:37 ID:???
>>658
ネタ?どう考えてもドキュメント読んだ方が早い
http://www.ie.u-ryukyu.ac.jp/~kono/perlman/cat1/perldata.html
@files = ('../aa/1234.txt','../aa/1235.txt', '../aa/1236.txt');
(\%header, $body, $html_body, 0, @files);
それとそのライブラリ、そのまま使うと何でも通すので
多分攻撃されます($form{$my})、ファイル消されます、入力チェック必須

>>660
良く読んで無いけど同じ文字列をeqで評価して真にならないなら
PERLかOSか機械が壊れてます。

663nobodyさん:02/07/31 20:48 ID:???
>660
改行って目に見えないんだよな・・・。
664comeoneverybody:02/07/31 21:16 ID:???
>>662
なんか間違っているということですか?

ドキュメント読んで出直します。

一応、パスワード入力+アクセス制限+外からアクセスできないディレクトリ
とか使って、セキュリティには気をつけてます。
665comeoneverybody:02/07/31 21:47 ID:???
>>662
ひらめいたぽ
666 :02/07/31 21:52 ID:???
おい>>630>>627 で解決した問題じゃないのか。
667nobodyさん:02/07/31 21:54 ID:6r/wlS/6
>>664 は以下の文章の意味するところを勉強しろ。

それとそのライブラリ、そのまま使うと何でも通すので
多分攻撃されます($form{$my})
668630:02/07/31 22:04 ID:???
やっと原因がわかりました、、

プライベート変数myをifで囲んでいたためifから出たら空になってました

1回printで出力してみたのですがそのとき運悪くifの中にコーディングしたため
ちゃんと表示されてしまったということでした。

答えてくださった方ありがとうございました。>>627さんので当たりでした。
669comeoneverybody:02/07/31 22:06 ID:???
>>662
ありがとうございました。
@files=(@files,"../aa/$form{$my}.txt');
これでやってみようと思います。

キタ━━━━━(゚∀゚)━━━━━!!!!
解決しました。
本当にありがとうございました。
670nobodyさん:02/07/31 22:32 ID:afTQxJxl
お金が無いので、
りゃま本、らくだ本、その他、
初心者向けの古本探して買おうかと思っていますが
最新版でなくてもよいでしょうか?
671nobodyさん:02/07/31 22:33 ID:oq+m6OUN
>>657
それでは、<br>を改行コードに戻したい時は「\n」に置き換えれば
あとはどのOSで見ても勝手に改行してくれるという事ですよね?
672nobodyさん:02/07/31 23:02 ID:???
>>670
古本屋にラクダ本がある素敵な場所があるなら教えて欲しいわ!(w
すれ違いなんで↓いきなさい
http://pc.2ch.net/test/read.cgi/php/988809842/
最新版じゃなくていいだろうが、、ラクダ2版は死んでも買えよ。
673nobodyさん:02/07/31 23:03 ID:???
>>671  なんでそんな3分で試せる当たり前の事を聞くんだよ
改行されるに決まってるだろ。
それとも誰かにその事の補償でもさせたいのか、裁判官みたいだな
674670:02/07/31 23:25 ID:???
>>672さん
誘導ありがとうございます。
らくだ2版っと、メモメモ・・・

親に駄々こねて、買ってもらおうとしたら受験生なので却下されますた。
こんど、参考書を買うと騙してらくだ本買うように企んでいます(藁
お金欲しい・・・・
675nobodyさん:02/08/01 00:24 ID:???
>>628,629
 $row_data{'NAME'} = $name;
 $row_data{'NICKNAME'} = $nickname;
 $row_data{'NICKNAMES'} = \@nicknames;
 push(@loop_data, \%row_data);
HTML::Templateのループネストって、普通でもややこしいのに、
もっと見通しの良い変数名を使ってホスィぞ。(外と内で同じ
%row_data を使ってるとか)
676nobodyさん:02/08/01 01:35 ID:???
>>674
趣味の本くらい自分の小遣いためて買え・・・。
親にたかるなよ
677nobodyさん:02/08/01 04:41 ID:???
>>675
ありがとうございます!!
ただ、>>629をループ処理すると、@loop_dataの中身はうまく表示されるんですが、
@nicknamesの部分は最後に入れたハッシュだけが適用されるようですね…
つまり、BobbyやHe-Manの部分をループ毎に変えても、結局最後に入れたハッシュの内容が
全てのNICKNAMESの部分に表示されると・・・。
678nobodyさん:02/08/01 07:48 ID:M7oaAkIZ
スレ違いかもしれませんが質問です。
この意味がおわかりになる方いらっしゃいますか?
おそらく、telnet経由でread cgiにアクセスし、logから住人のアクセス情報を
出すということを言っているのだと思うのですが、実際現在そのようなことはできるのでしょうか?

http://tmp.2ch.net/test/read.cgi/mog2/1028122076/30-59
679nobodyさん:02/08/01 08:52 ID:???
無理。
2ch全体でログ取ってすらいない。
何か起きたときだけ、緊急に取る。
680nobodyさん:02/08/01 09:00 ID:???
>>673
windowsしかなくてunixやmacで試せないから聞いてるんだよ。
お前はプログラムしか能のない馬鹿か?
論理的に理解できてるならそれぞれの環境で試さなくてもわかるんだろうが
俺はお前のように論理的にわからないからいちいち自分で試せないことは聞いてるんだよ。
こんなことわざわざ説明しなきゃいけないなんて、だからプログラマー同士って良く対立してるんだね。
わかったら、KENTのlight.cgiはなぜ\rで置き換えているか説明しろ。
681nobodyさん:02/08/01 09:45 ID:???
>>680
Windowsで試せばいいと思うが。
\nがUNIXでちゃんと表示されるのは当たり前。
\nがWinでOKならMacでもOKだろうと推測する頭を持て。
>KENTのlight.cgiはなぜ\rで置き換えているか説明しろ。
KENTがマカーだからだよ。

改行コードはどれにしてもIEやネスケではちゃんと表示される。
サーバがUNIX系ならUNIXの改行コードを使うのがいいんじゃないかということだな。
682nobodyさん:02/08/01 10:55 ID:xj2aK3qv
>俺はお前のように論理的にわからないからいちいち自分で試せないことは聞いてるんだよ。
まず、論理的にわかるように努力しる! 個別に試してうんぬんなんて
無駄なこと。KENTがどうのなんて気にするな。人気があるのはイイ
スクリプトを書いているからじゃない。
683nobodyさん:02/08/01 11:22 ID:???
>>643>>680

まぁまぁ。マターリしようYO。
そのテキスト形式のログを<pre>で囲んじゃ駄目なのか?
まともなブラウザなら改行コードにかかわらず表示できるYO。
684nobodyさん:02/08/01 12:35 ID:???
>>680
やっぱり夏●だったんですね、謝ります。
改行コードの話はスレ違い、板違いなんで
超宇宙真理板にでも逝って下さい
685nobodyさん:02/08/01 12:46 ID:???
>>680
ああ、妄想ファンタジーに突入してるんか

>KENTのlight.cgiはなぜ\rで置き換えているか説明しろ。
教えて欲しいならコード書け、KENTて誰だ?
まあ推測して書くと、そいつが馬鹿だからだな
perlの改行コードは\nなの、OSがUNIXだろうがマクだろうが
朝鮮人参だろうが関係無い
馬鹿以外の人間はんな事使って3日で気付くんだよな

馬鹿が馬鹿を見本に馬鹿なやり方で馬鹿妄想するから
普通の人間からドンドン遠ざかって行くんだよ
http://natto.2ch.net/denpa/
686nobodyさん:02/08/01 12:47 ID:???
>俺はお前のように論理的にわからないから
お前は根本的に社会生活に問題が有ると思うね
687nobodyさん:02/08/01 12:57 ID:???
復帰文字を使って改行するようなOSも、それを使うDQNも逝ってヨシだ。
>>680よこれを読め!!!
http://www2.gol.com/users/slowhand/kilmac/kilmac_i97.htm
688nobodyさん:02/08/01 13:44 ID:???
なんか議論中のようなのですがチョト失礼シマスです
厨な質問なのですが、よろしければ答えてくださいです

SSIでデータをちょこちょこと処理させようとしたりしたときに
1HTML(?)中に2〜3回SSIを使ってたりすると処理の順番はどうなるのでしょうか?

↑から順に実行>完了されるのでしょうか
それとも↑から実行されて、完了しないうちに2番目のが実行されたりするのでしょうか

どうかご教授ください、宜しくお願いします
689nobodyさん:02/08/01 14:30 ID:???
>>685
http://www.sankeipro.co.jp/male/kent_.htm
世界丸みえとかに良く出てるけど知らない?
プログラムやるのもいいけどたまにはテレビも見ようよ。
690nobodyさん:02/08/01 16:29 ID:???
691nobodyさん:02/08/01 18:52 ID:zZ0lPm5t
こんばんは。行き詰まっていますのでどなたか教えて下さい。
jpeg画像をCGI_Lite.pmを利用してアップロードするCGIをperlで作成しているのですが、
アップする際に、アップされるファイルがjpegファイルかどうかを確認する方法が
わかりません。
拡張子で確認する以外の方法があれば教えて下さい。よろしくお願いします。
692nobodyさん:02/08/01 18:57 ID:PoaI42Wk
お邪魔します。質問させてください。
port5.comにアクセスログ取得スクリプト設置したんだけど
htmlのソースにSSIのコメント<!--#exec cmd="..."-->ってやつが
ばっちり表示されてる。でもCGI/SSIは動いている模様。
これは普通のことなのですか?
ちなみにhypermartにも同じスクリプト置いてるけど、
こっちは表示されてないです。
693nobodyさん:02/08/01 19:25 ID:???
>>691
バイナリで送られてきたデータ先頭を確認する。

>>692
表示されているのはおかしいぞ、と。
694nobodyさん:02/08/01 19:29 ID:???
\xFF \xD8 \xFF \xE0 \x00 \x10 \x4A \x46 \x49 \x46 \x00
がJPEGの先頭のバイナリ。(たぶん。バイナリエディタで自分の持ってるJPEG画像開いて確認してくれ)
これが先頭にあるかを見る。
695692:02/08/01 19:55 ID:PoaI42Wk
>>693
ですよね〜
やっぱりSSIは動作してないかも、です。
でもCGI自体は動いているみたいで自分のアクセスしたログが
記録されてた。SSIが 使えないとダメなスクリプトのはずなのに、
なんでだろう・・・なんか混乱しちゃってます・・
696nobodyさん:02/08/01 20:02 ID:???
>692
port5.comがどういうところか知らないけど、そこのSSIではexecは許可されてるの?
697nobodyさん:02/08/01 20:39 ID:???
>>695
拡張子を確認!!
698692:02/08/01 20:43 ID:???
>>696
あ、多分解決しました。
port5.comはよく落ちるってことでレンタル鯖板ではすこぶる評判が
良いです。FAQのCGIのセクションばかりみていたんですけど、
他のところにSSIの説明ありました。回答して下さった方ありがとうございました。
699nobodyさん:02/08/01 20:47 ID:???
>>692
多分.htaccess
700nobodyさん:02/08/02 00:44 ID:Sqea3lxU
>>695

拡張子なんてアテになんないから、691は拡張子以外で、って書いてるんだろ
701nobodyさん:02/08/02 00:51 ID:???
>>697
>>700
落ち着け。
702675:02/08/02 02:27 ID:???
>>677
スマソ、いまいち元データと完成後の画面イメージが掴めんので、
事情が理解出来ないのだが、原理的にはこんなんで行くはずだが。
実際には@name0と、@name1は、リファレンスを使用したレコード
構造とかにする必要が有るだろうけど。
foreach my $name (@name0){
 foreach my $nickname (@name1) {
  my %nickname;
  $nickname{NICKNAME} = $nickname;
  push(@nicknames, \%nickname);
 }

 my %name;
 $name{NAME} = $name;
 $name{NICKNAMES} = \@nicknames;
 push(@loop_data, \%name);
}
$tpl->param(ROW => \@loop_data);

<TMPL_LOOP NAME=ROW>
 <tr><td><TMPL_VAR NAME=NAME></td><td>
 <TMPL_LOOP NAME=NICKNAMES>
  <TMPL_VAR NAME=NICKNAME>
 </TMPL_LOOP>
 </td></tr>
</TMPL_LOOP>
703nobodyさん:02/08/02 06:04 ID:Q2JtjWGI
execでもsystemでも,実行させた外部プログラムが終わるまで
処理がこっちに帰って来ないのが不便でかないません.

外部プログラムを別プロセスで起動させることは出来ますか?
704nobodyさん:02/08/02 06:05 ID:???
705nobodyさん:02/08/02 10:32 ID:HalM3U4I
チャットで、全員他の人を落とす方法教えてもらえませんか?
706nobodyさん:02/08/02 10:43 ID:???
CGIファイルを消す。
707nobodyさん:02/08/02 11:05 ID:???
>703
exec ですと、perl スクリプトが終わるので処理は返ってきません。
system ですと、forkしますから、別プロセスになります。

私は、
外部プログラムをperlの中から呼ばない
どうしても外部プログラムを使わないとダメな時は、そのためのシェルスクリプト
をperlに吐かせ、それを実行
するようにしてます。
708692:02/08/02 13:09 ID:???
>>699
正解です・・勉強してきますー
709nobodyさん:02/08/02 13:30 ID:8kGCovez
画像アップ掲示板で、画像のサムネイルを自動的に作るものがありますが、
あれってどうやってるんでしょうか?
(アップした画像を縮小してるんじゃなくて、小さな画像を自動的につくる)
710nobodyさん:02/08/02 14:05 ID:???
>>709
ここは【Perl】初心者コーナー ですが、読めませんか?
711nobodyさん:02/08/02 15:01 ID:???
html---------
<input type="checkbox" name="hoge" value="A">A
<input type="checkbox" name="hoge" value="B">B
cgi----------
@hoge = $FORM{'hoge'};
foreach $value (@hoge){
print "$value";
}

チェックボックスの値を受け取りたいんですけど、AとB両方チェックしても
Aしか受け取れません。やり方間違ってますか?
712nobodyさん:02/08/02 15:03 ID:???
>711
間違ってる。

nameを変えないとどちらかが上書きされる。
713nobodyさん:02/08/02 15:09 ID:Blzo1x52
配列として、返ってくると予想していたんですけどこの考えは間違いですか?
チェックボックスの数は変動するんでnameを別にするとしたら
わざわざ適当な名前+連番とかで付けなきゃいけないって事ですかね。
714nobodyさん:02/08/02 15:10 ID:???
配列としては取れない。
715nobodyさん:02/08/02 15:14 ID:???
<input type="checkbox" name="hoge1" value="A">A
<input type="checkbox" name="hoge2" value="B">B
....

仮に連番でチェックボックスを生成しても、今度値を受け取る時
その数だけ
$hoge1 = $FORM{'hoge1'};
$hoge2 = $FORM{'hoge2'};
...
ってあらかじめ何個も用意しておかなきゃいけないんでしょうか。
(掲示板の投稿削除で管理者は一気チェックして消せるみたいな感じにしたいんです)
716nobodyさん:02/08/02 15:21 ID:???
$FORM{'hogeN'};  を  $hogeN に代入する必要は無いんじゃないか?
717nobodyさん:02/08/02 15:32 ID:???
>715
頭固い?
for(my$i=1;$i<=$last_number;$i++){
  push(@hoge,$FORM{"hoge$i"});
}

とかで回せば楽だろう。
718nobodyさん:02/08/02 15:33 ID:???
基本的なことがわかってないヤツは何をやってもダメ
719nobodyさん:02/08/02 15:34 ID:???
>>715

頭硬い
要領悪い
プログラマーに向いてません
720nobodyさん:02/08/02 15:42 ID:???
バカだって、バカなりに生きていかなきゃならんし…。
721nobodyさん:02/08/02 15:52 ID:???
>>711
hoge=A&hoge=B&hoge=C・・・・
上書きはされないで送られる。
読み込むときに
$count = 0;
my @pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
  my($name,$value) = split(/=/,$pair);
  if($name eq 'hoge') {
    $hoge[$count] = $value;
    $count++;
  }
}
と配列に読み込むようにする。
722nobodyさん:02/08/02 18:27 ID:???
>>712

ハズカシー!
723nobodyさん:02/08/02 19:34 ID:???
けど指摘できたの721だけだな。
724712:02/08/02 20:41 ID:???
>722
取得する時に変える方法は思いつかなかった。
どうせcgi-lib.plかなにかで取得させてるんだろうと思ったし
言っても分からないだろうから、下手に混乱させる必要もないかなと。
>721の発想出ないなんて、確かに頭固くなってて恥ずかしいね。
725nobodyさん:02/08/02 21:32 ID:???
>>724
言い訳ハズカシー!!
726nobodyさん:02/08/02 23:15 ID:+4MGC8XT
1 FORM から送信されたデータをデコードしたり、エンコードしたい。


2 こんな風にやってみた。

s/(\W)/'%'. (unpack(H2, $1))/eg;
s/%([a-fA-F0-9]{2})/pack(H2, $1)/eg;


3 いや、ふつうに動きますが、いくつか CGI の掲示板
Perl のスクリプトを公開しているサイトを拝見させて
頂きましたが、圧倒的に以下の様なスクリプトが幅を
利かせています。

s/(\W)/sprintf('%%%02X', unpack(C, $1))/eg;
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

"C" で pack or unpack するメリットと、
"H2" で pack or unpack するデメリットを伺いたいのですが。

てゆーか "H2" のが効率良さそうな気がするのですが。



727nobodyさん:02/08/02 23:23 ID:???
H2の方が効率がいい。
RFCでCの方が書かれて
Cの方を使う人が多い。しまっていたから
728726:02/08/02 23:31 ID:???
>727
アリガトゴザイマス

RFC が解りません。
今調べてますが、差し支えなければ教えて下さい。


729nobodyさん:02/08/02 23:43 ID:???
RFCの日本語訳ならこの辺。
http://www.se.hiroshima-u.ac.jp/~isaki/rfc/list.html

インターネットの標準を定めている文書、といっても過言ではない。
たしかURIエンコードの項目に pack("C", hex($1)) が書かれてた。
730728:02/08/02 23:49 ID:fhO9IRlh
>729
ありがとうございますです。
非常に参考になりました。

731nobodyさん:02/08/03 00:24 ID:4FNUCrqf
叩かれ覚悟で質問します。htmlもロクにわかってません。
FORMで打ち込んだ内容をテキストに保存するCGIを作ってます。
#!/usr/local/bin/perl
print<<"EOM";
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="$naiyou">
<input type=submit value="送信する">
</form>
EOM
open(OUT,">> log.txt");
print OUT "$naiyou";
close(OUT);

すいませんアドバイスお願いします。
732nobodyさん:02/08/03 00:29 ID:???

とりあえず、送られてきたデータを受け取れ。
話はそれからだ。


#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair(@pairs){
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}

print<<"EOM";
<html>
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="naiyou">
<input type=submit value="送信する">
</form>
</html>
EOM
open(OUT,">>log.txt");
print OUT "$FORM{'sub'}";
close(OUT);
exit;
__END__
733730:02/08/03 00:34 ID:???
1 CGI 掲示板のログを、なるべく安全に保存したい。
2 "$/" INPUT_RECORD_SEPARATOR に "\n" を代入(する必要は多分無い)
"\r\n" を <br> に変換し "\r" "\n" を削除する。
"\r" をセパレータにしてデータを書き込む。
だいたいこんな感じ。
while($i < $log_countmax}){
 foreach(keys(%TMP)){$line .= "$_=$TMP{$_}\r";}
 push(@lines, $line);}

読み込み時には split にリミットを指定する事で文中の "=" は無視できる。
($key, $value) = split(/=/, $_, 2);

3 少ない環境での動作チェックはしましたが、同様の処理をしている
スクリプトを見かけないので、なんとなく不安が残ります。
何か問題点が有りそうでしたら、ご指摘下さい。
もちろん上記スクリプトは、意味が分かる程度に簡略化した物で動きませんよ?
734731:02/08/03 00:43 ID:4FNUCrqf
>>732
ありがとうございます!
でもサーバーエラーがでます。
なぜだろう・・ちゃんとパスやパーミッションも合ってるのに。
735732:02/08/03 00:46 ID:???
適当に書いたから(^^;
一応、データの受け取りはよく使われる。
↓こんなのが。

sub read_form {
local($pair,$buffer);
if($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}elsif($ENV{'REQUEST_METHOD'} eq 'GET'){
$buffer = $ENV{'QUERY_STRING'};
}
local(@pairs) = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
736nobodyさん:02/08/03 00:51 ID:???
Content-Type: text/html
を忘れてたからだ。

print<<"EOM";
のあとに
Content-Type: text/html<改行>
<改行>
入れてみて。
737nobodyさん:02/08/03 00:55 ID:???
foreach $pair(@pairs){
の直後に
local($name,$value) = split(/=/,$pair);
も忘れてた。
回線切って首(略
738731:02/08/03 01:07 ID:4FNUCrqf
>>731
表示できました。
でも送信してもlog.txtに書き込まれないみたいです。
もうちょっとからかってみます。
739nobodyさん:02/08/03 01:10 ID:???
>もうちょっとからかってみます。
漏れはからかわれていたのかΣ(゚д゚lll)
740731:02/08/03 01:13 ID:4FNUCrqf
>>739
いやそういう意味じゃないです!すいません。
自分でcgiをからかうという意味です。
変な言い方ですいません。
741nobodyさん:02/08/03 01:20 ID:???
ローカルでテストしてみたけど、ちゃんと書き込まれてる。

#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}

print<<"EOM";
Content-Type: text/html

<html>
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="naiyou">
<input type=submit value="送信する">
</form>
</html>
EOM
open(OUT,">>log.txt");
print OUT "$FORM{'sub'}";
close(OUT);
exit;
__END__
742731:02/08/03 01:30 ID:4FNUCrqf
>>741
できました。
すごい勉強になりました。
感謝!
743nobodyさん:02/08/03 06:08 ID:???
すいません

$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;

これはいったいどういう処理をしているのでしょうか?
744nobodyさん:02/08/03 08:11 ID:yBArvQmy
携帯からファイルをアップロードできるCGIを作っているんですが、
自分の所に携帯が無いのでどこを気をつけていいのか教えて頂けませんでしょうか?

Googleで6時間以上探し回っているんですがヒントすら見つかりません。
どなあたかご教授お願いします。
745743:02/08/03 09:10 ID:???

s/%([0-9-zA-Z]{2})/pack("H2", $1 )/eg;

というのは %12 や %a7 などにマッチさせて
pack("H2",$1)というのに変換するということはなんとなくわかるんですが
このpack("H2",$1)というのは具体的に何をしているのか解説しているサイト
ないでしょうか?もしくはどなたか答えてくれる方いましたらよろしくお願いします。
746nobodyさん:02/08/03 09:36 ID:f5spmMMH
>>744
携帯電話のローカルな情報をアップロードするって話なの?
どこに気をつけるとかいう以前にできるか否かは検討したのか。

>>745
perldoc -f pack すると
H A hex string (high nybble first).
とあるよ。
747nobodyさん:02/08/03 10:09 ID:y5M4ReYw
748nobodyさん:02/08/03 12:08 ID:???
>>702
こちらの作ってるスクリプトもそれと同じような構造なのですが、
どうも自分のやろうとしている事はレコードを使わないといけないようですね。
ただ、検索してもレコードやリファレンスの構造がいまいちよく分からないんで、
HTML::Template以外の方法を使うことにします。
それほどこのモジュールにこだわる必要もないんで・・・もうしわけない。
749nobodyさん:02/08/03 20:59 ID:???

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

このようなエージェントを利用して使用ブラウザと使用OSを取得したいと考えています。
例えば上の場合だと

$browser = "IE 5.5";
$os = "Windows XP";

というような感じに代入させたいのですが。。
750nobodyさん:02/08/03 21:13 ID:???
>>749
上の例だと、IEは5.01じゃないのか?
しかもOSも2000。
751nobodyさん:02/08/03 21:46 ID:???
>>750

そうでした。
どうすればいいのでしょうか?
752nobodyさん:02/08/03 21:54 ID:???
ここでも見たらどうかね?

http://www.futomi.com/subroutine/ua.html
753nobodyさん:02/08/04 01:18 ID:8/YQ8REX
始めまして。質問させていただきます。
フォームメールでローカルに有るファイルを添付させたいのですが、上手く出来ません。
送信したときにローカルファイルをサーバー上に一時ファイルでローカルファイルの
コピーを作成できないみたいなのです。
名前だけの空っぽのファイルができてそれが添付されてメールが届きます。
どうしたらファイルのコピーが作れるのでしょうか。
どなたかよろしくご教示ください。
754nobodyさん:02/08/04 01:26 ID:???
Cで言うところのfscanfってPerlではなんて関数なんですか?
755nobodyさん:02/08/04 01:36 ID:???
>>753
そのソースを見ないことには改善できないよ。
756755:02/08/04 01:36 ID:FrE7nmXK
デコード処理を行ってるつもりなのですが、
まったく反映されず、どこが悪いのかも分かりません。
ご指摘お願いします。
757756:02/08/04 01:37 ID:FrE7nmXK
sub decode {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer = $ENV{'QUERY_STRING'};
}

$i = 0;
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
758756:02/08/04 01:37 ID:FrE7nmXK
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');

$value =~ s/</</g;
$value =~ s/>/>/g;

$value =~ s/\r\n/<br>/g;
$value =~ s/\r/<br>/g;
$value =~ s/\n/<br>/g;

$value = $form{$name};

$name = $form{'name'};
$comment = $form{'comment'};

@num[$i]=$value;
$i=$i++;
}
759nobodyさん:02/08/04 01:45 ID:???
あーぁ、やっちゃったな。CGIスレにリンク張ってやりたい処理と現状を書くべきなのに。
760756:02/08/04 01:47 ID:FrE7nmXK
>>759
知りませんでした。
スイマセン
761753:02/08/04 01:55 ID:8/YQ8REX
すみませんでした。
下に書いてあるふうに、ファイル名を取得して空の同名のファイルをサーバ上の
指定したフォルダに作成してるんですが、その作ったファイルの中にデータを書き
こめないんです。
どうしたら良いかご教示いただけないでしょうか。

$filename = $FORM{$tenpu};
$c_type = 'Content-Type';
@tmp = split(/\\/, $filename);
$tmpfile = pop(@tmp);

$file_path = "./mail_tmp/$tmpfile";
open(OUT, ">$file_path");
while($tmp_byte=read($filename, $buffer, 1024)) {
print OUT $buffer;
}
close(OUT);
762nobodyさん:02/08/04 02:16 ID:???
>>756
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');

これは必要か? サーバ環境は?
763nobodyさん:02/08/04 02:21 ID:???
>>761
$file_path = "./mail_tmp/$tmpfile";

$tmpfile に値ある?
mail_tmp のパーミッションは?
764753:02/08/04 02:33 ID:8/YQ8REX
763さん
すみません、値というと・・・?
mail_tmpのパーミッションは777です。
765nobodyさん:02/08/04 02:35 ID:???
>>763
値というと、つまり、ファイル名がちゃんと入っているの? ってこと。
766753:02/08/04 02:40 ID:8/YQ8REX
あ、はい。ちゃんと名前は入ってきています。
この空っぽのファイルが添付されて送られてきてしまいます。
767nobodyさん:02/08/04 02:46 ID:???
>>766
>>761以前の処理ってどうなってる?
768753:02/08/04 02:55 ID:8/YQ8REX
761より前の処理は
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$buffer,$ENV{"CONTENT_LENGTH"});
}else{
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/&/&/g;$value =~ s/"/"/g;$value =~ s/\,/,\;/g;
$FORM{$name} = $value;
}
です。
それで761の処理以降はsendmailの処理になってます。
サブジェクトや添付ファイルのエンコードとかもそこでやってます。
769nobodyさん:02/08/04 02:57 ID:???
>>768
だったら、もうすでに標準入力からすべて読み込んでるわけだから当然ファイルは
空になります。
770753:02/08/04 03:03 ID:8/YQ8REX
そうなんですか!読んでても残ってるのかと思ってました。
もう1回やりなおしてみます。本当にありがとうございました。
771nobodyさん:02/08/04 06:22 ID:???
>>752

いいもの教えてくれてありがとうございました
772クッキーのオンオフ:02/08/04 16:22 ID:???
質問失礼します。
ユーザー環境でクッキーのオンオフを確認し、
クッキーオフならhidden属性を表示しないようにしたいのですが、
クッキーのオンオフをその場で見極める方法などはありますでしょうか?

自分ではヘッダ情報でクッキーを書き出してから、$ENV{'HTTP_COOKIE'}で
再取得できればクッキーオンだと確認できると思っていたのですが、
クッキーを記録したその場では$ENV{'HTTP_COOKIE'}が更新されないようで
上手くいきませんでした。

クッキー保存と読み込みを別スクリプトで行なえばいいのですが、
それだとサーバーへのアクセスも増えますし、訪問者の人の
手間も増えてしまいます。

クッキーのオンオフをその場で確認する方法、
もしくは$ENV{'HTTP_COOKIE'}の再読み込みをする方法を
ご存知な方がいらっしゃいましたら、どうかご教授ください。
よろしくお願いします。
773apholist:02/08/04 21:57 ID:DUVpmc74
ActivePerl、Apache2.039でCGI動かしてるんですけど
いくつかのCGIで初期表示のあと、更新しようとすると

couldn't create child process: 22:
couldn't spawn child process:

というようなエラーが表示されます。何が原因だと
考えられますか?
774nobodyさん:02/08/04 22:01 ID:???
子プロセスを作れませんでした?

UNIX専用の関数とか使ってない?
775apholist:02/08/04 22:06 ID:DUVpmc74
>>774
あるかも。調べる方法ってあります?
776apholist:02/08/04 22:27 ID:DUVpmc74
とりあえあう、Flockと、symlinkは外しました。
他にもありますか?
なかなかまとまったページがないっす。
777nobodyさん:02/08/04 22:29 ID:???
fork とかも。
どのプラットフォームでも動くようなCGI使えや。
778apholist:02/08/04 22:49 ID:DUVpmc74
>>777
難しいこと言うなぁ。簡単なことなのか?
どのプラットフォームでもっていうと、
チャット、掲示板、カウンターなどほとんどWinでは
難しいような気がするんだけど。
まあ、Winで作られたものならWinで動くんだろうけど。

とりあえず、forkチェックしてみます。
「とか」って言ってるけどなんで知ってるの?常識?
779apholist:02/08/04 23:00 ID:DUVpmc74
スマソ。perlのドキュメントにありますた。

Some functions that work on Windows NT/2000 reportedly do not work or are buggy on Windows 95. An example is flock().

Certain functions don't seem to work on ActivePerl.
There are several functions that are unimplemented in the ActivePerl system. Here is a complete list of unimplemented functions:

Functions for processes and process groups
alarm(), getpgrp(), getppid(), getpriority(), setpgrp(), setpriority()

Fetching user and group info
endgrent(), endpwent(), getgrent(), getgrgid(), getgrnam(), getpwent(), getpwnam(), getpwuid(), setgrent(), setpwent()

System V interprocess communication functions
msgctl(), msgget(), msgrcv(), msgsnd(), semctl(), semget(), semop(), shmctl(), shmget(), shmread(), shmwrite()

Functions for filehandles, files, or directories
link(), symlink(), chroot()

Input and output functions
syscall()

Fetching network info
getnetbyname(), getnetbyaddr(), getnetent(), getprotoent(), getservent(), sethostent(), setnetent(), setprotoent(), setservent(), endhostent(), endnetent(), endprotoent(), endservent(), socketpair()

See the perlport and Win32 documentation pages for more information on the portability of builtin functions in ActivePerl.

だって。コピペしないほうがよかったか?
780apholist:02/08/04 23:29 ID:DUVpmc74
うぉー全部チェックしたがまだ同じエラーだ…。
781nobodyさん:02/08/04 23:46 ID:???
>>780
その前に、ごく簡単なCGIでもそうなるか試した?
782apholist:02/08/05 00:02 ID:vCl4cucl
>>781
ごく簡単なCGIなら動きます。
掲示板も普通の?は動いたけど、megabbsスクリプトで
スレ立て後、レスを書き込もうとすると同じエラー。
783nobodyさん:02/08/05 00:12 ID:???
NGワード!NGワード!w
784nobodyさん:02/08/05 00:13 ID:???
>>782
じゃあ、そのmegabbsスクリプトってのがしょぼいんだろう。
785nobodyさん:02/08/05 00:17 ID:mlKhZTXH
C言語
ファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積





10
786apholist:02/08/05 00:26 ID:vCl4cucl
>>783
え?ヤヴァイ?
787apholist:02/08/05 00:29 ID:vCl4cucl
>>785
ネタ?厨?For文使うか一つずつ円周率3で計算すればいいんじゃない。
788nobodyさん:02/08/05 00:31 ID:???
>>785
マルチはうせろ!     
789nobodyさん:02/08/05 00:40 ID:???
790apholist:02/08/05 00:41 ID:vCl4cucl
>785
マルチだったのか。Perlとか言語の区別もつかんとは
あわれな厨だな。俺よりアフォだ。

とりあえず、うごきますた。Apache2.039が悪かったみたい。
1.326にしたら動いた。
人柱になるのはもっとスキルみがいてからにします。

ご協力感謝。
791nobodyさん:02/08/05 01:57 ID:LdtViypm
アンダーバーを含む行の先頭に
hogeという文字列を追加したい場合
どう書けばいいですか
792nobodyさん:02/08/05 02:19 ID:???
>>791
キーワード
正規表現 or index
793nobodyさん:02/08/05 02:21 ID:???
>>791
s/(.*_.*[\x0d\x0a]*)/hoge$1/g;
794nobodyさん:02/08/05 02:21 ID:???
>>772
遅レスだけど、ありません。
795nobodyさん:02/08/05 02:35 ID:LdtViypm
>>792 >>793
マッチさせる文字列全体をカッコでかこめば
よかったんですね。
勉強になりました。
796nobodyさん:02/08/05 09:42 ID:???
>>758
$i=$i++;
はいかんよ
$a=0;
$b=$a++;
の場合は$a=1,$b=0.
$i=0;
$i=$i++;
なら$i=1,$i=0.どっちか分からん。
797nobodyさん:02/08/05 10:21 ID:???
>>791
while(<>) {
next if !/_/;
s/^/hoge/;
}

ひとつの小難しい正規表現でやるのは嫌な人用。
798nobodyさん:02/08/05 10:36 ID:???
このスレを見ていると、localだとかcgi-lib.plだとかjcode.plといった記述を
よく見かけまずが、未だにperl4しか入ってないサーバばかりなんですか?
799nobodyさん:02/08/05 11:28 ID:???
軽い方がいいから。
800nobodyさん:02/08/05 11:37 ID:7p5l2D2K
以前こちらで教えていただいた者です。その節は大変お世話になりました。
フォームメールでローカル上のファイルを添付して送信するスクリプトを作ったのですが、
パソコンのアウトルックではちゃんと添付ファイル付きのメールが受信できるのに
gooとかのウェブメールや、シグマリオンに付いているMPメールでは上手くいきません。
なにか違いでもあるんでしょうか。
どなたかご教示いただけないでしょうか。
801nobodyさん:02/08/05 11:53 ID:???
添付ファイルの扱いを間違えてるとか。
802nobodyさん:02/08/05 12:26 ID:7p5l2D2K
扱いといいますと・・・?
gooでは件名、本文は正常に受信できて、添付の部分は本文にコードが書かれている状態です。
MPメールのほうは件名もiso-2022-jpと書かれていて、本文もcontent-type云々になってます。

パソコンのアウトルックで使うより、シグマリオンのMPメールで使う方が多いので困っています。
803nobodyさん:02/08/05 13:47 ID:???
Content-Type: Multipart/Mixed;
となってますか。
804nobodyさん:02/08/05 14:55 ID:???
一つの動作の中で2回デコード作業をしてはいけないんでしょうか。

$ENV{'QUERY_STRING'}
の内容は1回目で無くなっちゃうんでしょうか。
うまくいかないんです。
805 :02/08/05 14:59 ID:???
>>804
そんなこたーないよ。コード見せてみ。
806nobodyさん:02/08/05 14:59 ID:???
うまく行くといいですね   ピュア
807nobodyさん:02/08/05 16:02 ID:???
>>805
全体と載せるのは無理なんで説明します。
で、実は>721でやっているのをやりたいんです。
チェックボックスの値を配列で受け取るとういのを。
#usr/bin/なんたら
$FORM = &getparam; # パラメータ取得
$mode = $FORM{ mode };
if($mode eq "") { &main; }
〜モード判定〜
else { &error("不正なアクセスです。"); }

sub getparam{ # デコードサブルーチン
 read( STDIN, $post, $ENV{ 'CONTENT_LENGTH' } );
 @data = split(/&/,$post);
 foreach $all (@data) {
 ($name,$value) = split(/=/,$all);
 $value =~ tr/+/ /;
 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
 $value =~ s/,/,/g;
 $value =~ s/"/"/g;
 $value =~ s/</</g;
 $value =~ s/>/>/g;
 $value =~ s/\r\n|\r|\n/<br>/g;
 $value =~ s/<br</<br>/g;
 $FORM{$name} = $value;
 if($name eq "no"){
  push(@nos,$value);
 }
}
@FORM
808nobodyさん:02/08/05 16:02 ID:???
続き

sub main{
foreach $hoge (@nos){
 print "$hoge";
}
}

こうやるんですけど、何も表示されないんですね。
@FORMの配列しか受け取れていないんでしょうか。
最後の値を返り値にするから。
なんで
 if($name eq "no"){
  push(@nos,$value);
 }
@nosの値を受け取るためだけのデコードルーチン作ったんですけど
それでもうまく値が返ってこないんですよね。
809 :02/08/05 16:08 ID:???
>>807>>808
で、$ENV{'QUERY_STRING'} は どこ?
810nobodyさん:02/08/05 16:19 ID:???
postなんで$ENV{ 'CONTENT_LENGTH' } でした。
811 :02/08/05 16:22 ID:???
>>810
$ENV{ 'CONTENT_LENGTH' } でも値がなくなるこたーないよ。出力させてみ。

でも標準入力からは1度しか読み込めない。
812nobodyさん:02/08/05 16:22 ID:???
POSTの場合ははSTDINから受け取るので1回受け取ったらなくなります。
813nobodyさん:02/08/05 16:25 ID:???
>>807
$postの中に残っていると思われます。
814nobodyさん:02/08/05 16:29 ID:???
>>807
そのソースは、記念に以下のスレにカキコしといてよ。

http://pc.2ch.net/test/read.cgi/php/1028052835/l50
815nobodyさん:02/08/05 16:54 ID:???
>>814
載せておきました。
816nobodyさん:02/08/05 18:23 ID:???

                   _ _     .'  , ..   ..   .'     ∧_∧
          ∧  _ - ― = ̄  ̄`:, .∴ '      ・,‘∴  , .   (    ) ←>>814
         , -'' ̄    __――=', ・,‘ r⌒>  _/ /
        /   -―  ̄ ̄   ̄"'" .   ’ | y'⌒  ⌒i
       /   ノ                 |  /  ノ |
      /  , イ )                 , ー'  /´ヾ_ノ
      /   _, \               / ,  ノ
      |  / \  `、            / / /
      j  /  ヽ  |           / / ,'
    / ノ   {  |          /  /|  |
   / /     | (_         !、_/ /   〉
  `、_〉      ー‐‐`            |_/

817nobodyさん:02/08/05 18:24 ID:???
      氏ね
      ∧_∧          _ _     .'  , .. .∧_∧
     ( ´_ゝ`)   _ .- ― .= ̄  ̄`:, .∴ '     ( >>815
    /     '' ̄      __ ヽ´=', ・,' r⌒> _/ /
   / /\   / ̄\-―  ̄ ̄   ̄"'" .   ' | y'⌒  ⌒\
 _| ̄ ̄ \ /  ヽ \_              |  /  ノ |
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)              , ー'  /´ヾ_ノ
  ||\            \          / ,  ノ
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄          / / /
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||          / / ,'
  ||  ||          .||       /  /|  |
                       !、_/ /   〉
818802:02/08/05 20:15 ID:???
803さん、遅くなって申し訳ありませんでした。
Content-Type: Multipart/Mixed;になっています。
もしかしてアウトルックはIEみたいに多少の間違いがあっても
上手いこと動いてくれてしまうんでしょうか・・・。
819nobodyさん:02/08/05 20:16 ID:???
あれ?いつからここは格闘技板になったのだ?
820nobodyさん:02/08/05 21:37 ID:TC4MSFf/
2chのように上から下へ流れていく掲示板を作っているのですが
書き込んでCGI上でリロードする際に、ページの下の方を表示したいんです。

表示と書き込みのCGIを分けて
書き込み側から
<META content=0;URL="read.cgi#sita" http-equiv=refresh>
こんな感じで飛ばしてみたんですが何故か#sitaが反映されません。

何かいい方法はないでしょうか。
821nobodyさん:02/08/05 21:42 ID:???
>820
書き込み後にLocationで飛ばせば?
822nobodyさん:02/08/05 21:44 ID:obWCEw8Y
すいませんが、教えてほしいことがあります。

掲示板のログファイルを閲覧者からは見えなくしてCGIからだけ
読み込めるようにするにはどんなパーミッションにすればいいですか?
掲示板の削除キーが書き込んであるのが閲覧可能というのは、
やはりまずいかなと思いましてね。
いろいろ探したけどわからなかったので、知ってる方いたらお願いします。

まあ、ファイル名をわかりにくいものにする、などの方法はありますがね。
823nobodyさん:02/08/05 21:50 ID:TC4MSFf/
>>821
やってみました。

print "Location:read.cgi\#sita\n\n";

こうですよね。
でもやっぱり#sitaは反映されないようです。
他に何か無いでしょうか…。
824nobodyさん:02/08/05 21:57 ID:???
>822
パーミッション変えるより、拡張子を.cgiにすれば?

>823
ページの読み込みが終わるまで待ってる?
その前にどこかクリックしたりすると移動しないことがあるよ?

あと、念の為に聞いておくけど、<a name=sita></a>で失敗していたりしないよね?
825nobodyさん:02/08/05 22:06 ID:TC4MSFf/
>>824

>あと、念の為に聞いておくけど、<a name=sita></a>で失敗していたりしないよね?

そのとおりでした。穴があったら入れたいです。

ありがとうございました。
826nobodyさん:02/08/05 23:12 ID:???
ここ、夜になると一気に寂れるな。
みんな仕事でやってるのか。
に、してはレベルが・・・。
827m(__)m:02/08/05 23:25 ID:7ewZSPim
こういうCGIないでしょうか。

コミュニティサイトをしようかと思っているのですが、
メンバー表に登録するとクッキーが焼かれ、
掲示板などに書き込む時偽りができないようにできるスクリプトありませんか?

例を出すと、
http://daichanchi.com/
で利用しているようなものです。

よろしくお願いいたします。

828nobodyさん:02/08/05 23:33 ID:???
>>827
作れ。簡単だ。
829nobodyさん:02/08/05 23:58 ID:???
>>828が作る頭がないに1000チョン
>>827がたたかれるに1マルク
 http://pc.2ch.net/test/read.cgi/php/1021897804/
830nobodyさん:02/08/06 00:04 ID:diugRf3e
次のソースで動かしたところ、
「writing」と表示されたのにかかわらず
if文の中が実行されません。
超初心者的なミスを犯していると思いますが、なにとぞご指摘ください。

ActivePerl: 5.6.0.620
Apache 1.3.24
Windows2000 +SP2

/* 以下 プログラム */

print "「$In{mode}」";
if ($in{mode} eq 'writing'){
print "hoge";
exit;
}
831nobodyさん:02/08/06 00:06 ID:???
>>830
ネタもほどほどにね。
832830:02/08/06 00:07 ID:diugRf3e
プログラムが見にくいのでインデントしますた。

print "「$In{mode}」";
if ($in{mode} eq 'writing'){
   print "hoge";
   exit;
}
本当は 「writing」hoge と表示して欲しいのに・・・
833830:02/08/06 00:08 ID:diugRf3e
>>831
ネタだと思われるようなミスなのですか(鬱)
どこがおかしいのか教えてください。
834nobodyさん:02/08/06 00:09 ID:???
$In{mode} と $in{mode} はそれぞれ別の連想配列というネタ?
835830:02/08/06 00:17 ID:diugRf3e
うぎゃ〜、本当だ(鬱)
失礼しました〜っ

836nobodyさん:02/08/06 00:21 ID:???
どこで writing が定義されてるんだろう。
837830:02/08/06 00:24 ID:diugRf3e
>836
writingはHTMLのフォームから渡されてきた物です。
mode=writing の時に書き込み処理をするようなBBSを
作っているのでした(笑)
こんな単純なことで3時間を費やした俺って一体(鬱)
838nobodyさん:02/08/06 06:46 ID:???
>>10
氏ね
839 ◆JAPH9PWA :02/08/06 09:22 ID:???
>>837
そんなキミに-wスイッチとuse strict;をお勧めするよ。
慣れるまでちょっと時間は掛かるけど、
タイポによるつまらないバグが激減すること間違いなし!
840art:02/08/06 10:10 ID:a25IbhtN
投稿ごとにファイルが生成される掲示板を作っています。
1.txt、2.txt・・という具合にファイルを生成したいんですが、

(1)テキストが保存されているディレクトリ内のファイルの数を調べ$prev内に代入
(2)*.txtの*をファイル数を$prev + 1にする。
(3)「($prev+1).dat」という名のファイルにする

という考え方でいいのでしょうか?
もし合っていればどういう風に書くかアドバイスして頂きたいのですが・・。
841nobodyさん:02/08/06 10:19 ID:???
>840
ナンバーを保存する別ファイルを作る。
842nobodyさん:02/08/06 10:29 ID:???
よけいなお世話だけど、投稿削除とか前の方からどんどん削除したいとき大変よ?
843nobodyさん:02/08/06 10:29 ID:???
サブルーチンの返り値が複数欲しい時はどうすればいいんですか。
844843:02/08/06 10:30 ID:???
配列が二つ欲しいです.
@hogeと@hage
これをさらに一つの配列にするしかないですか?
845nobodyさん:02/08/06 10:36 ID:???
>>843
普通にリストで。 
return ($a,$b);

($x,$y) = &hoge();


>>844
リファレンス
846リファレンスを返す:02/08/06 10:38 ID:???
sub foo{my (@hoge,@hage);return(\@hoge,\@hage);}
my ($hageR,$hogeR)=foo;
847art:02/08/06 10:42 ID:a25IbhtN
>>841
ナンバーを保存する別ファイルか・・
どうやるのですか
848nobodyさん:02/08/06 10:52 ID:???
なめてるのか?

open(FIL,"a.txt");
$a = <FIL>;
close(FIL);
open(FIL,">a.txt");
print FIL ++$a;
close(FIL);
849nobodyさん:02/08/06 10:56 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

850art:02/08/06 11:03 ID:a25IbhtN
>>848
なめてないよ。

そうじゃなくて、まずファイル生成する時にどうやってファイル名を
1.txt、2.txt、3.txt・・と増やして作ることが出来るかってこと。
851nobodyさん:02/08/06 11:05 ID:???
>>850
尊敬。

まず、BASICか何かでプログラムとは何か。から学ぶべきかと。
852art:02/08/06 11:09 ID:a25IbhtN
ナンバーを保存するファイルを生成するとなると
考えがまとまらなくなってしまって・・・・・。
>>840の方法だと、分かりやすいんですが
そうすると削除とか大変なんですよね。
853nobodyさん:02/08/06 11:10 ID:???
いや、そもそもその方式が。
854art:02/08/06 11:11 ID:a25IbhtN
>>853
お願いします・・助けてください・・(笑)
855nobodyさん:02/08/06 11:23 ID:???
「data」ディレクトリ内にあるtxtファイルの数を
$datという変数に代入するにはどうすればいいですか?
856nobodyさん:02/08/06 11:30 ID:yJuB6gJh
cgiで画像を分割する方法ってありますか?

合成ならカウンタとかでよく見かけるんですが、
分割はどうしてもわかりません。

たとえば500x500の画像を
100x100の5個に分割したりする方法です。
857856:02/08/06 11:30 ID:yJuB6gJh
>>856
500x500

500x100

まちがえたよー
858nobodyさん:02/08/06 11:31 ID:???
>art
投稿毎にファイルを生成するなら、ファイル名の数値を調べてインクリメントするが吉。
効率悪いし、メンテナンスしにくいと思うが。
859nobodyさん:02/08/06 11:35 ID:???
前もって分割しておく(固定のファイルをいちいち分割する理由がない)。
もしくはGD.pm
860856:02/08/06 11:39 ID:yJuB6gJh
>>859
画像を携帯から見ようと思うのですが、
当然機種によって表示できるサイズがちがうので、
表示させる段階で分割させたいのです。

厳密にいえば、
大きな画像の任意の一部を抜き出してブラウザに返すのがいいです。
なので、別に分割してファイルを複数つくる必要はないかもしれません。

GD.pmってモジュールですよね?
まだモジュール使ったこと無いので緊張しますが
ちょっと調べてきます。
861nobodyさん:02/08/06 12:53 ID:3j+94g7Z
$test =~ /ー/;
ってやるとエラーが出るんですけど、どうすればいいでしょうか?
862nobodyさん:02/08/06 13:15 ID:???
$test =~ /\Qー\E/;
863nobodyさん:02/08/06 13:17 ID:???
>>861
文字コードをEUC-JPにする
864nobodyさん:02/08/06 13:23 ID:xsMd1/x0
掲示板の更新時刻をTOPページに表示しようと思うのですが
掲示板が沢山あり、ログファイルが沢山ある場合、
したの処理を、ログファイルの個数だけ書かないといけないのでしょうか?
良い方法が思いつきません
どうすればよろしいのでしょうか?

#!/usr/local/bin/perl

$file1="log.txt";

$a=(stat($file1))[9];
($x,$mm,$h,$d,$m,$y,$x,$x)=localtime($a);
$m++;

print "Content-type: text/html\n\n";
print"掲示板の更新日は$m/$d $h:$mm";
865 ◆adminSE. :02/08/06 13:35 ID:???
掲示板のログファイル名を配列にいれといてforeachで回して処理すれば?
866nobodyさん:02/08/06 13:49 ID:???
>>855の質問に誰か答えられる方いませんか
867nobodyさん:02/08/06 13:57 ID:???
opendir DIR data;
@list = <DIR>;
closedir DIR;
@CON = grep { /^*.\.txt$/ } @list;
$dat = $#CON;
868nobodyさん:02/08/06 14:00 ID:???
@CON = grep { /^.*\.txt$/ } @list;
869nobodyさん:02/08/06 14:00 ID:???
>867
それだと1個足らなくない?
870nobodyさん:02/08/06 14:05 ID:???
>>866
ファイル数用のカウンターを作っとけばいいんじゃねーの。
871nobodyさん:02/08/06 14:07 ID:???
>>869
そういやそうだった。
872nobodyさん:02/08/06 14:12 ID:???
>>867
出力すると「-1」って出てきたんすけど・・
1個少ないんだったら変数に1足しても問題ないですかね?

>>870
簡単に言わないでよ
873nobodyさん:02/08/06 14:48 ID:xsMd1/x0
>>865

ありがとうございます。
配列に入れて回したのですが
08/06 14:07 メイン掲示板
08/06 14:09 雑談掲示板


と出力されるのですが、新しいモノが上に来るようにソートするにはどうしたらよいでしょうか?



print "Content-type: text/html\n\n";
foreach $c (1..$q) {

$access=(stat($file[$c]))[9];
($x,$min,$hour,$mday,$mon,$x,$x,$x)=localtime($access);

$date = sprintf("%02d/%02d %02d:%02d",$mon+1,$mday,$hour,$min);

$sort="$date $name[$c]<BR>\n";
push(@new,$sort);

}
@new = sort { (split(/<>/,$b))[6] cmp (split(/<>/,$a))[6] } @new;
print @new;
874nobodyさん:02/08/06 14:52 ID:???
$sort="$date $name[$c]<BR>\n";
の部分は
$sort= "$date<>$name[$c]<><BR>\n";
でした
875 :02/08/06 15:16 ID:???
どんどん板のレベルが低下してるのが笑える!
876nobodyさん:02/08/06 15:24 ID:???
>>875
そうだな・・・
まぁ、ここは初心者のスレだし良いんでないの?
877nobodyさん:02/08/06 16:14 ID:32Vwa5NB
>>873
my %file2mtime;
@file2mtime{@file} = map{ (stat($_))[9] } @file;

foreach my $file (sort{ $file2mtime{$a} <=> $file2mtime{$b} } @files) {
print $file, "\n";
}
878nobodyさん:02/08/06 18:57 ID:+CLAZ6EK
IEで、キャッシュを無効にするにはどうしたらいいでしょう。
cgiからの出力を、ブラウザの戻るボタン押下時に意図的にリ
ロードさせたいだけなんですが。。。

<%
Response.AddHeader "Expires", "0"
If Request.ServerVariables("SERVER_PROTOCOL") = "HTTP/1.0" Then
Response.AddHeader "Pragma","no-cache"
Response.CacheControl = "no-cache"
Else
Response.CacheControl = "no-cache"
End If
%>
とか
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
とか
試したんですが無理でした。

誰かよろしくお願いしますっ!
879nobodyさん:02/08/06 19:18 ID:???
>>878
Perlとどういう関係があるの?
880nobodyさん:02/08/06 19:29 ID:???
881878:02/08/06 19:36 ID:+CLAZ6EK
>>879
Perl cgiです。。
formにオブジェクトを埋め込めないため、ノーキャッシュ
で制御しようとしてるんですが、IEではうまく動かないん
で、どなたか経験者がいらっしゃたらなぁと。

>>880
答えれねぇんなら出てくん名ぼけが
882nobodyさん:02/08/06 19:41 ID:???
>881
向こうのスレでレス返してやってるのは俺なんだがな。
マルチポスト氏ね。
883878:02/08/06 19:49 ID:+CLAZ6EK
>>882
おおそうか。ならあのページにかかれてある事が
上のソースでやってる事もわかってて書いたんだろうな。

まったく、大変有意義なレスだよな。
ぷ。
884nobodyさん:02/08/06 19:55 ID:???
意図的にリロード?
おまえブラウザて何処で動いてるか知ってる(ププp
何か思いっきりスレ違いだし、
カタワって可哀相だねppp
885nobodyさん:02/08/06 19:57 ID:???
電波キタ━━━━━━(゚∀゚)━━━━━━!!

マルチポストするようなヤツぁ何をやっても駄目。
886878:02/08/06 20:03 ID:+CLAZ6EK
>>884
クライアントにきまってんだろがぼけ。
クライアントで動くソース投げ店のがサーバのPerl cgiなんだよ。
あっそうか、Perlつかってcgi作った事のない人だったんだ。
ごめんねぇ。。unixとPerlという閉ざされた世界しか知らないんだ。
かわいそうにねぇ・・・・・・。
あ〜〜、いいこいいこ(* T-)ヾ( ̄▽ ̄;) ヨシヨシ w


887nobodyさん:02/08/06 20:06 ID:???
>>886
> クライアントで動くソース投げ店のがサーバのPerl cgiなんだよ。
お前がやってるのは VBScript ASPだろ
なんでPerlのスレに書くんだよ。

顔真っ赤にして捨て台詞書くなよ、みっともない・・・
888878:02/08/06 20:17 ID:+CLAZ6EK
わかったわかった・・・。
しかしサンプルで書くときはどんな言語でも書くだろうに・・・。
近くにあるライブラリからもってくるんだからさぁ。
まぁ俺がPerlで書かなかったのが悪かったな。

わりぃわりぃ。
Perlしかしらねぇんだもんな。
889nobodyさん:02/08/06 20:20 ID:???
誰かアソパソマソ貼ってあげて
890マジレス:02/08/06 20:23 ID:???
ASPスレがあるのにそちらで書かないで暴れてるアホがいるスレはここですか?

つーかサンプルも糞もあるかよ、ここはPerlスレだ。
あとCGIとASPの違いが分からんアホも逝ってよし。
891nobodyさん:02/08/06 20:26 ID:???
___
/ \ ________
/ ∧ ∧ \ /
| ・ ・ | < 氏ねよおめーら
| )●( |    \________
\ ー ノ
\____/
892nobodyさん:02/08/06 20:26 ID:???
     ___
    /     \     ________
   /   ∧ ∧ \  /
  |     ・ ・   | < おう、呼んだか?>>889
  |     )●(  |  \________
  \     ー   ノ
    \____/
893878:02/08/06 20:31 ID:+CLAZ6EK
最初からこう書けばよかったな。
sub printhtml{
my($htmlbody,$mime)=@_;
my $nc="\n"
.'<meta http-equiv="Pragma" content="No-Cache">'
.'<meta http-equiv="Cache-Control" content="No-Cache">'
.'<meta http-equiv="Expires" content="Monday, March 01, 1999 00:00:00 AM GMT">';
&Jcode::convert(\$htmlbody,'sjis');
&Jcode::convert(\$::debug,'sjis');
if($::isnocache){
print $cgiutil::httpheader_nc;
$htmlbody=~s/\<head\>/<head>$nc/;

}else{
print $cgiutil::httpheader;
};
print $htmlbody;
if($::isdebug){print "<h4>DEBUG START</h4>\n".$::debug;};
1;
};
ってやってるんだが、IEのcashに残る。
でもこれはPerlの文法とかじゃねぇから、わっかんねぇな。
スレ違いスマソ
894nobodyさん:02/08/06 20:31 ID:+On492A+
モジュールのLWP::UserAgentはどこにありますか?
895nobodyさん:02/08/06 20:52 ID:???
>>893 あまり電波には答えたくないんだが、、、

cgiutilパッケージの中身は分からんは $htmlbodyの中身は分からんは、、、

とりあえずDOSプロンプトかShellで試して出力結果のヘッダに

Pragma: no-cache
Cache-Control: no-cache

<head>〜</head>に

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="co-cache">

が含まれてるか見てみれ

>>894
http://search.cpan.org/
896878:02/08/06 21:29 ID:+CLAZ6EK
>>895
色々スマソ。
HTTPリクエストにもhtmlにも含まれてます。
で、理由としては隠し属性項目でイベントを保存していたため、
戻るで戻ってこられるとイベントが初期値ではなくなっていたためなんですよ。
で、リロードをかけさせるために有効期限とキャッシュレスにしようとしてい
たんですがうまくいかなかったもので。。
java-scriptでリロード時に強引に書き換えるようにして対応しました。
本来リロード時のイベントが、ボタン押下時のイベントを知っているわけ
ないんですが、これしかうかびませんですた。

スレ違いにもかかわらず、申し訳ありませんでした。
897 :02/08/06 22:33 ID:???
>>891
それはZIP圧縮?
898Piano:02/08/06 23:37 ID:???
ランキングCGI作ってるんですが
降順で表示させようと
reverse sort (@count);
で実行すると、

9
9
8
7
4
2
16

・・と、なぜか16が最後に来てしまいます。
どなたか分かる方いらっしゃいませんか?
899nobodyさん:02/08/06 23:41 ID:Fh8h+3RQ
辞書式に降順してるんでしょ。
reverse sort {$a <=> $b} @count
で、どうでしょ。チェックしてないけど。
900 :02/08/06 23:43 ID:???
sort{$b<=>$a}@count;
901Piano:02/08/06 23:44 ID:???
>>899
出来ました!!
ありがとうございました!!
902Piano:02/08/06 23:44 ID:???
>>900
reverse使わなくても出来るんですね。
参考になりました、ありがとうございます。
903899:02/08/06 23:51 ID:Fh8h+3RQ
そうか>>900の書き方でいいのか…
904 :02/08/07 00:24 ID:ulRsWHQg
すみません、基本以下の質問なのですが、PHPを設置できるレンタルサーバ
はないでしょうか?
御存じの方、教えてください。お願いします。
905nobodyさん:02/08/07 00:36 ID:nEZxoP/q
xrea
906nobodyさん :02/08/07 06:28 ID:4Lzws0bX
kz islandさんの「アクセス人数表示Lacerta 0.11」CGIを設置したいんですが

ダウンロードする
属性をCGIを755 LOGを666に変更する
HTMLページに<!--#exec cmd="○○/lacerta/lacerta.cgi"-->
と、埋め込んで
CGIと同じディレクトリにアップする

この設置の仕方は間違ってるのでしょうか?
アップしたHTMLページを開いても何も表示されません・・・。
どなたか、教えていただけませんでしょうか?

ttp://www.kz-island.net/cgi/lacerta.htm
907nobodyさん:02/08/07 07:12 ID:???
shtml だと思うが……。
908907:02/08/07 07:15 ID:???
すまん、寝起きで変なことを書いた。
「SSI が有効な設定になっていて
拡張子が shtml になっているのか?」
と言いたかったんだ。
909nobodyさん:02/08/07 07:54 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
910nobodyさん:02/08/07 09:02 ID:fr9q9q5s
cgiの中でxmlファイルを生成して、(xslは当然もとから用意しておいて)
xmlをhtmlに変換する事はできますか?

xmlとxslだけではIEでしか表示できないので普通に手作業で、
msxsl.exeを使ってhtmlへ変換していましたが
今回はcgiでxmlを生成してそこからhtmlへ変換することになったのです。
なのでmsxsl.exeの役割をcgiの中でも出来るのかどうかというわけなのです。
911nobodyさん:02/08/07 09:16 ID:???
>>910
DOMとかそう言うXMLの常識の言葉を知っていれば答えは自分で出せるはずだけど。
912nobodyさん:02/08/07 10:56 ID:7jIJ9A+d
うpろだを作ってるのですが、

送信するものがファイルのみならうまくいくのですが、
一行コメント等もいっしょに送るにはどうすればいいでしょうか?

というのも、
binmode(STDIN);
とやって標準入力をバイナリモードにしちゃうやりかたしかわからないので

テキストは受信してもめちゃめちゃなんですよ。
913nobodyさん:02/08/07 11:26 ID:???
テキストもバイナリで受け取っても問題ないと思うが?
ただ\nとかいう表現方法はお勧めできない。
914nobodyさん:02/08/07 12:02 ID:biTmKPZ6
まさか、エンコードした日本語を「化けてる」って言ってる
わけじゃないよね。
915nobodyさん:02/08/07 12:05 ID:???
>>912
テキストファイルをアップロードしたら、まんま送られるだろ。どうめちゃめちゃなの?

>>914
アップロード時に日本語がエンコード???
916nobodyさん:02/08/07 12:49 ID:???
>>915
うpろだでアップロードなんだから、日本語とかはURLエンコードされてしまうと思われ。
917nobodyさん:02/08/07 13:31 ID:???
>>916
オマエどこ中だよ!
918nobodyさん:02/08/07 14:18 ID:???
>>912
binmodeってWindowsサーバ使ってるのか。
919nobodyさん:02/08/07 14:24 ID:???
>>917
落ち着けよ。
920nobodyさん:02/08/07 15:36 ID:???
>>915
日本語テキストファイルはそのまんま送られないよ。
「アップロード URLエンコード」とかのキーワードで探せばわかる。
921nobodyさん:02/08/07 16:07 ID:???
>>916=920
君は何か勘違いをしている。
922nobodyさん:02/08/07 16:30 ID:???
>>921
とりあえず、お前の見解をどうぞ。
923nobodyさん:02/08/07 16:34 ID:???
>>912はどこにもテキストファイルとは書いてない。
924920:02/08/07 16:50 ID:???
>>920はテキストファイルじゃなくってテキストそのもののことです。
それでも>>921の見解は間違いなことにはかわりない。

とりあえず日本語をHTTPでやり取りするときには(ブラウザ側で
自動的に)URLエンコードされるのは当然なんだが、それは知って
いるのかな?
925nobodyさん:02/08/07 17:00 ID:???
>>924
お前はテキストファイルと書いたがな。
926921:02/08/07 17:01 ID:???
>>920=%E3%81%B0%E3%81%8B
927921:02/08/07 17:44 ID:rbDAoZ/o
私の見解を
enctypeがapplication/x-www-form-urlencoded(デフォルト)なら日本語はURLエンコードされる。
しかしアップローダということなので恐らくenctypeはmultipart/form-dataと思われる。
multipart/form-dataではURLエンコードはされない。
以上
928nobodyさん:02/08/07 18:06 ID:???
>>927
漏れもファイルのほうはそう思うが、
送られてくるテキストの方が掲示板のデータように送られてくるのだとしたら、
URLエンコードされてしまうと思う。

つーか、>>912現れてどうめちゃくちゃなのか言え!
929921:02/08/07 18:23 ID:IJRoW2QJ
<form enctype="multipart/form-data" method="POST" ・・・>
<input type="text" name="hoge" value="日本語">
<input type="submit">
</form>
これでエンコードはされない
だけどboundaryとかが入るのでnameとvalueの受け取りが面倒。
930nobodyさん:02/08/07 18:38 ID:sSYiyIo6
>>921=ばか
931nobodyさん:02/08/07 18:41 ID:mhNc4G4w
とりあえず、実際にやってみれば判るんでない。
932921:02/08/07 18:43 ID:2dLUgCtT
>>930
正解でし(UTF-8)
933nobodyさん:02/08/07 19:00 ID:???
>>912
CGI.pm使うかcgi-lib.pl使っとけ。
934nobodyさん:02/08/07 20:42 ID:???

これは?

%82%A4%82%F1%82%B1
935nobodyさん:02/08/07 20:48 ID:???
>>934
それをUTF-8でデコードしろ。
936nobodyさん:02/08/07 21:19 ID:???
perlのコメントを自動的に取り除いてくれるソフトありませんか?
937nobodyさん:02/08/07 21:21 ID:???
Perlがもっとも得意とする分野なんだが・・・。作れ。
938nobodyさん:02/08/07 21:23 ID:???
>>935

いやネタとして出題しただけだが
俺が分からなくて困っているのではない。
939 nobodyさん :02/08/07 21:30 ID:???
>>936
perldoc -q comments
で、C Styleのコメントを取り除くscriptを解説してくれている。
それを参考にしる。
940nobodyさん:02/08/07 23:13 ID:???
$val =~ s/&/&/g;
$val =~ s/"/"/g;
$val =~ s/</</g;
$val =~ s/>/>/g;
$val =~ s/\0//g;

このような処理はデコードとはいいませんよね?
なんて言うんでしょうか?
941nobodyさん:02/08/07 23:15 ID:???
置き換え。
942nobodyさん:02/08/07 23:20 ID:???
>>941

もしコメントとして書く場合はどれが適当でしょうか?

■[置換]のEXCEED和英辞典からの検索結果 


ちかん
置換

substitution; replacement; 《数学》 a permutation. 〜する substitute; replace; 《数学》 permutate. 

943nobodyさん:02/08/07 23:32 ID:???
tikan;
esuke-pu;
↑ これが伝説のPGにだけ許される最高の称号
944nobodyさん:02/08/08 00:00 ID:???
思うに次スレたてて欲しくない。
ぜんぜんPerlの話じゃないやん。
CGIすれに統合!でめでたしめでたし終わり。
945nobodyさん:02/08/08 00:19 ID:???
CGIすれも終わった方が良いんじゃネーノ?w
http://pc.2ch.net/test/read.cgi/php/1025930486/462-
946nobodyさん:02/08/08 00:22 ID:???
>>936
モジュールはちと面倒くさいけど、普通のスクリプトからコメントを
取るなら多分 perl -MO=Deparseが一番簡単だと思う。B::Deparseなら
q#foobar# とかの"#"に惑わされる事はないし。
947nobodyさん:02/08/08 00:30 ID:???
>>946
ボクりんが今から作るから、チョット待っててネ、パックン!
948nobodyさん:02/08/08 00:31 ID:???
次スレは【Perlコーディング】とタイトルに入れてほしい。
949nobodyさん:02/08/08 00:32 ID:zM69Q9o6
正規表現で
アイウエオという文字列があったときに
ア イ ウ エ オ
文字ごとに空白を
ってあける方法ってありますか?
あるとしたらどうやるのでしょうか?
簡単にできそうで2バイト文字の扱いがよくわかりませんでした・・・
950nobodyさん:02/08/08 00:41 ID:???
951947:02/08/08 01:25 ID:???
ど?

#!/usr/bin/perl

my @files= ('/path/file.pl');

for my $file ( @files ){
    open(R, $file) || next;
    open(W, ">$file.txt") || next;
    while (<R>){
        last if /^__(?:END|DATA)__$/;
        next if /^[\s;]*$/ || (/^[\s;]*#/ && $.!=1);
        1 while s/^(.*[\w"'\)\]\}\s];|.*\)\s*\{)\s*#.*/$1/;
        s/;[;\s]+\n$/;\n/;
        print W unless (!/^=cut/ && /^=\w+/) .. /^=cut/;
    }
    close(R); close(W);
}
952nobodyさん:02/08/08 01:34 ID:htQeibpH
>>949
正規表現じゃなくて良いなら。応用は自分で考えて。

$hoge = index($value,'アイウエオ');
if($hoge > -1){
for($count = 0; $count < 4; $count++){
substr($value,$hoge+2,0) = ' ';
$hoge += 3;
}
}
953947:02/08/08 01:43 ID:???
>>949
ど?

s/([\201-\237\340-\374].|.)/$1 /g;
954947:02/08/08 01:48 ID:???
>953
あ、書き忘れたけどSJIS対応ね。 EUCなの?
955947:02/08/08 01:52 ID:???
EUC対応ど?

s/(\216[\241-\337]|\217?[\241-\376].|.)/$1 /g;
956nobodyさん:02/08/08 02:44 ID:???
文字列に"#~()<>などの記号が何回含まれてるかを調べるにはどうしたらいいべかー
957947:02/08/08 03:02 ID:???
>>956 ど?

$n= tr/#//;
958947:02/08/08 03:04 ID:???
わかりにくい書き方した? もいちど。

$n= $_=~ tr/#//;
959感謝する956:02/08/08 03:15 ID:???
簡単にできたんすね。初心者ゴメン!ヽ(`Д´)ノ
960nobodyさん:02/08/08 03:17 ID:???
>>958
置き換えられてしまわない?
961nobodyさん:02/08/08 03:26 ID:???
d付けなきゃ大丈v(゚д゚)
962nobodyさん:02/08/08 04:31 ID:???
EUCで書いた自作チャットをケータイ端末に対応させようとしたところ
古いi-modeではログが化けてしまう模様
調べたところ解決策はどうもないっぽいんで駄目押し覚悟でここへ来た
質問。
解決策はあるますか。
963nobodyさん:02/08/08 04:35 ID:???
Shift_JIS に変換してみる。
964nobodyさん:02/08/08 04:36 ID:???
>>951
今試してみたらなんにもコメント取らないんだけど・・・
965nobodyさん:02/08/08 04:37 ID:???
EUCで書いたまま変換させる?
それとも最初からSJISで保存する?
966nobodyさん:02/08/08 04:43 ID:???
>>965
出力のみShift_JISがいいかと。
967nobodyさん:02/08/08 04:48 ID:???
>>966
方法がわからなくて。
METAタグじゃないよね。。
968nobodyさん:02/08/08 04:56 ID:???
jcode.pl Jcode.pm のどちらかを使って、ログをShift_JISに変換。
969nobodyさん:02/08/08 05:01 ID:???
jcode::convert(\$body,"sjis");
てなかんじ?
970nobodyさん:02/08/08 06:23 ID:???
>>964
こういうこと?
対象に上書きするので注意。

#! /usr/bin/perl

$perlfile = 'ファイル名';

open(FILE,"+<$perlfile");
 while($tmp = <FILE>){
  $tmp =~ s/\#+[^;]*\n/\n/;
  $dat .= "$tmp";
 }
 seek(FILE,0,0);
 print FILE "$dat";
 truncate(FILE, tell(FILE));
close(FILE);

print "Content-type: text/plain\n\n終了\n";
971970:02/08/08 06:28 ID:???
訂正
×$tmp =~ s/\#+[^;]*\n/\n/;
○$tmp =~ s/\#+[^;{}]*\n/\n/;
972nobodyさん:02/08/08 06:47 ID:???
【私立円正寺中学校入学試験】
その2
[問題]
ひとつの箱があります。その中に0から9までの数を書いたカードが
それぞれ3枚ずつ入ってます。(計30枚)
A君が3枚、その箱からカードを取り出すとき8と5と3のカードの組み合わせが
(583,853など)でる確立を求めなさい。:制限時間3分
973nobodyさん:02/08/08 08:32 ID:???
"確立"は求められないなぁ。。。
974nobodyさん:02/08/08 08:50 ID:???
>>973
やばいぞ君…。
975 ◆adminSE. :02/08/08 09:11 ID:???
[確立]かあー・・
976nobodyさん:02/08/08 09:43 ID:???
9C3 / 30C3 かな? もう忘れた。麗しき過去の記憶...学生時代よもう一度。
977nobodyさん:02/08/08 10:12 ID:???
(3/10) * (2/10) * (1/10)

Web Prog 板で Perl 初心者てことは、 Web Prog の初心者は来るなと?
最終回記念カキコ
978964:02/08/08 10:35 ID:???
>>970
いや、俺は最初の質問者じゃないんだけど、回答を試してみたら
何も起こらなかったという事を報告したかっただけ。

ちなみに>>970のヤツだとやっぱり

qw/
#foobar#
/;

sprintf(
'%s-000',
$foo = q#foobar#,
);

とかもちょんぎられちゃうから駄目だと思う。
(だから確かなのはO::Deparseくらいしかないと思うわけだが・・・)
979nobodyさん:02/08/08 11:18 ID:???
(9/30) * (6/29) * (3/28)
980947:02/08/08 12:24 ID:???
>>978 動かなかった? 以下のでど? 対象ファイルを@filesに設定

#!/usr/bin/perl

my @files= ('/path/file.pl');

for my $file ( @files ){
    open(R, $file) || print "Can't open $file\n";
    open(W, ">$file.txt") || print "Can't open $file.txt\n";
    while (<R>){
        next if (!/^=cut/ && /^=\w+/) .. /^=cut/;
        last if /^__(?:END|DATA)__$/;
        next if (!/^\s*$/ && /^[\s;]+\n$/) || (/^[\s;]*#/ && $.!=1);
        1 while s/^(.*[\w"'\)\]\}\s];|.*\)\s*\{)\s*#.*/$1/;
        s/;[;\s]+\n$/;\n/;
        print W;
    }
    close(R); close(W);
}
981nobodyさん:02/08/08 14:14 ID:???
perlのモジュールを本を見ながら作ったのですがどうやって読みこませるのですか?
982nobodyさん:02/08/08 14:25 ID:???
┌──────────────────────―─―┐
│                                      |
│                                      |
│                                      |
│                                      |
│                ∧_∧                      |
│               ( ・∀・)                |
│               (    )                 |
│               | | |                     |
│               (__)_)                  |
|                WebProg                |
│                                      |
│        【Perl】初心者コーナー を終了しています…     |
│                                      |
│                                      |
|                                      |
|                                      |
└───────────────────────――┘
983nobodyさん:02/08/08 15:59 ID:N0Sb7H4r
各種リンク集。掲示板のある専門サイトとかPerlハウツーサイトとか
 ↓
http://hp.vector.co.jp/authors/VA014700/l_goodhp.html
984nobodyさん:02/08/08 16:11 ID:???
>981
読みこむ方で(モジュールファイルをModule.pmとして)、
use Module;
とやる。
モジュール作れたんなら、分かっているはずだが...?
985nobodyさん:02/08/08 18:04 ID:UER6B09R
掲示板作成中なのですが、
ページを更新したり、そのページを訪問しただけで投稿記事が増えてしまします。
どのような対処法があるのですか?
locationを使おうと思ったのですが、うまくいきません。
よろしくお願いします。
986sa:02/08/08 18:07 ID:???
a
987nobodyさん:02/08/08 18:10 ID:???
公開されているものを参考にする。
988985:02/08/08 18:15 ID:UER6B09R
>>987
そうします。
ついでに、もしよろしければ
どのような記述を参考にすれば良いのかヒントだけでもいただけま戦火?
989nobodyさん:02/08/08 18:53 ID:???
>>985
内部処理チェックしてみてわ。
訪問しただけでも増えるなら、おそらく処理途中で必ず投稿処理を行うような感じになってるから
990nobodyさん:02/08/08 18:56 ID:???
記念パピコV(^o^)V
991nobodyさん:02/08/08 19:34 ID:???
>>984

モジュールってインストールしなきゃつかえないんですよね?
module.pmをmoduleっていうフォルダにいれてるんですがそれを
呼び出すのは無理?
992nobodyさん:02/08/08 19:57 ID:???
>991
何か壮大な勘違いをしている可能性アリ。
呼び出す側のルーチンで
use Module;
デスヨ?
993nobodyさん:02/08/08 21:17 ID:???
>>992

test.cgiから

moduleフォルダの中にあるmodule.pmを呼び出す場合は

test.cgiにuse Module;って記述するんですよね?
それでやってみたんですができなかったんですが・・
994993:02/08/08 21:18 ID:???
↑はuse moduleに訂正 
995nobodyさん:02/08/08 21:50 ID:???
>>992
perldoc lib
996nobodyさん:02/08/08 21:54 ID:???
>>993
それでやるならtest.cgiも同じフォルダにつっこんどけ
997nobodyさん:02/08/08 22:01 ID:???
push @INC, './module';

じゃダメポ?
998nobodyさん:02/08/08 22:02 ID:???
use lib './module';
でもいいかと。
999nobodyさん:02/08/08 22:12 ID:???
jhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
10001000:02/08/08 22:13 ID:???
次スレは無し。
CGIスレッドに統合すべし。
反論する者がなければ決まり。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。