【Perl】初心者コーナー Part12
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
02/04/27 23:17ID:1NNXdNspいらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
CGIの質問は【CGIだけどなんか質問ある Pert 6 】
http://pc.2ch.net/test/read.cgi/php/1019561283/
参考書籍の話題は【【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を見よう。
0002nobodyさん
02/04/27 23:17ID:1NNXdNspPart1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/test/read.cgi/php/996075607/
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/test/read.cgi/php/1009549309/
Part10 http://pc.2ch.net/test/read.cgi/php/1014556702/
Part11 http://pc.2ch.net/test/read.cgi/php/1017201229/
[ひまぢん氏のミラー]
Part1 http://www.angelfire.com/ak5/2ch-web-program/kako/957208980.html
Part2 http://www.angelfire.com/ak5/2ch-web-program/kako/971817087.html
Part3 http://www.angelfire.com/ak5/2ch-web-program/kako/979894521.html
Part4 http://www.angelfire.com/ak5/2ch-web-program/kako/984430156.html
Part5 http://www.angelfire.com/ak5/2ch-web-program/kako/988728069.html
0003nobodyさん
02/04/27 23:17ID:1NNXdNsp・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 Recipes: http://www.effectiveperl.com/recipes/
・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
・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/
[Document&Tutorial]
・Perl News: http://www.news.perl.org/
・Perl Monks: http://www.perlmonks.org/
・PerlMonth - Online Perl Magazine - : http://www.perlmonth.com/index.html 接続不能
・use Perl All The 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/
0004nobodyさん
02/04/27 23:17ID:1NNXdNsp・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/
0006nobodyさん
02/04/27 23:41ID:???0007hanamogera ◆kkkKkkko
02/04/27 23:49ID:zKZtkfuAあんまり激しく叩かないで〜
http://www.sgmt.jp
0008nobodyさん
02/04/27 23:57ID:???∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(∩・∀・)< もしもし…何がしたいのかもうちょっと具体的におながいします
□……(つ ) \___________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
textareaに書かれた文字数をcgiにわたる前にチェックしたいということかな?
0010nobodyさん
02/04/28 00:04ID:???歴史(?)は繰り返す
http://pc.2ch.net/test/read.cgi/php/991313362/261
0012nobodyさん
02/04/28 00:47ID:???0013nobodyさん
02/04/28 01:28ID:???2年前Perlに挫折して、VBS、PHPやってきたんだけど
昨日 Perlのリファレンス読んだら 理解できたの
ちょっとうれしいな!
聞いてくれてあーりがと アロエリーナ♪
\______ ________/
|/
∧_∧
Ψ (∀・ )
□ (∩∩ )
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0014nobodyさん
02/04/28 01:49ID:???0016nobodyさん
02/04/28 02:16ID:???0017nobodyさん
02/04/28 18:19ID:???0018nobodyさん
02/04/28 21:44ID:???0019nobodyさん
02/04/28 22:14ID:9I+rPdRiクローズされます。
exit 以外でも、終了するとクローズされます。
0020継続
02/04/28 22:20ID:???2. if($string eq "hoge"){
3. if ( $string eq "hoge" ) {
4. if( $string eq "hoge" ){
どれが好きですか?細かいけど
1と4が一人ずつ
0022nobodyさん
02/04/28 22:44ID:???制御構造では空白を挟むのが一般的。(if, while, foreach, for ...)
パーレン中の両端は普通空白を入れない。(*)
よって「1」。
(*)条件式が複雑で、パーレン中の端に空白を入れた方が見やすくなる場合は
そうするかもしれない。
0024nobodyさん
02/04/28 23:16ID:???お願いします
↓
お<>願<>い<>し<>ま<>す<>
こんな感じにしたいのですが。
0026nobodyさん
02/04/28 23:30ID:???s/([\200-\377]{2})/$1<>/g;
0027nobodyさん
02/04/29 00:30ID:???Perl6 じゃなくても if/for/foreachなどの() が必要とは限らないだろ!
`kill -KILL _gunzipのPID` if $user eq '_gunzip';
>24
環境の文字コードを早く書け、ボケ!
0028nobodyさん
02/04/29 00:31ID:pMsSvLdB添え字と値両方を操作したいんです。
例えば配列@aのすべての要素に関して
foreach $_ (@a) {print "添え字=$_";}
こういう感じのことを添え字が予めわからない場合
どのようにしたらいいでしょうか。
0030nobodyさん
02/04/29 00:39ID:???調べてきます。
0031nobodyさん
02/04/29 00:53ID:???ありがとうございます。
sjisにも対応させるには
s/([\200-\377][\000-\377]|[\000-\377])/
でいいのでしょうか。
やってみたところ無事に動いてるっぽいのですが。
0032nobodyさん
02/04/29 01:06ID:???http://www.din.or.jp/~ohzaki/perl.htm#Character
0033nobodyさん
02/04/29 01:24ID:???で、どういうことを質問すればいいの?
0035nobodyさん
02/04/29 03:32ID:???0036nobodyさん
02/04/29 03:55ID:???0037nobodyさん
02/04/29 05:40ID:???Part9、10はまだHTML化されてないし。
0038nobodyさん
02/04/29 05:56ID:Ff1dM8JCIEで表示させると動くのに、それをCGI上でPerlで出力させたHTML文の中に
同じJavaScript(WSHでもいい)を書いて表示させると、ブラウザの
ステータスバーに「実行させたけどエラーになりました」という表示が
出て、期待通りの動作が起きないのは何故なのか、ご存知の方います?
0039nobodyさん
02/04/29 06:27ID:???出力は期待通りにされてるの?
0040nobodyさん
02/04/29 08:54ID:???0044nobodyさん
02/04/29 09:49ID:???儲かってますが、なにか?
0046nobodyさん
02/04/29 10:11ID:???exp for @array;
exp foreach @array
exp if $str eq "hoge"
>>21 はPerl6では
foreach @array -> $item {
exp
}
if $str eq "hoge" {
exp
}
とかくようになる、ということを言いたかっただけだと思われ。
(つーか、修飾句の場合()を外せることぐらいgunzipは知ってるだろ.do-demoiigana)
004746
02/04/29 10:14ID:???0050nobodyさん
02/04/29 10:28ID:???0051nobodyさん
02/04/29 10:29ID:???_gunzip さん、わかりやすい解説ありがとうごさいました。
わざわさ _gunzip を gunzip と書いて別人になりすますあなたのやさしさ、
たしかにわたくしの胸を打ちました。
今後ともよろしくおながいします。
0053nobodyさん
02/04/29 10:37ID:5LS+M/ng0054nobodyさん
02/04/29 10:38ID:???だよねー。 いつもの _gunzip さんの手口ね。
この板を盛り上げようとする心意気はわかるけど、名前を変えては煽ったり
するのってもうやめたほうがいいんじゃなーい? そのほうが人が戻ってくる
ように思うのはわたしだけじゃないでしょ?
0055藁藁藁
02/04/29 10:40ID:5LS+M/ngこいつの1レスごとに、俺が50レスで荒らします。
そんなことになったら、他の人も困るでしょ?
0056あぼーん
NGNG0058nobodyさん
02/04/29 10:49ID:???あまりにも本質をついてしまったから、動揺しちゃったね。
>54
冷静に見てる人もちゃんといるんだね。
0060nobodyさん
02/04/29 10:55ID:???と、おきまりのを書いてみるテスト。
さて、どんな言い訳が返ってくるか(藁)
それとも、おれが_gunzip認定されたりして。
0061nobodyさん
02/04/29 10:58ID:5LS+M/ng0062nobodyさん
02/04/29 10:58ID:5LS+M/ngとりあえず、ウザイ
0063>>21
02/04/29 10:59ID:5LS+M/ng0064あぼーん
NGNG0067nobodyさん
02/04/29 12:23ID:???だろうね。トレンド語るようなスレなら1000ゲトーしても
良いかも知んないけど、質問系スレは900逝く前に移行して
新しくスレ立つごとにうまくageてれば良いと思う。
0068nobodyさん
02/04/29 12:32ID:???A,B,C,D,E,Fって処理があってどれもお互いカブってないような状況なら
サブルーチン化して&A;・・・&F;ってやるのと
ただABCDEFって並べるのなら処理速度的に後者の方が良いんですかね?
0073nobodyさん
02/04/29 13:27ID:???むずかしくてわっかりませーん。
ここ初心者のとこでもむずかしいのねぇ。 びっくりさぁね。
みなさんのレベルで初心者って、、、はぁ。 もう、わけがわかりません。
0074nobodyさん
02/04/29 13:41ID:kMaPAu7S()内が単純なものなら2、複雑で読みにくくなったら4です。
スペース打つのがめんどいのと、極力横幅を縮めたいので。
0075nobodyさん
02/04/29 13:57ID:???標準モジュールの中にそれってあるのか? だれでもいいから早めに答えろよ、
こっちはいそがしいんだからな。
いっとくが、とほほが配布してるやつはよせよ。うまくくっつかんからな。
それ以外でくっつける方法とかしってるやつがいたらもったいぶらないで教えろや。
0077nobodyさん
02/04/29 14:47ID:???│ |
│ |
│ |
│ |
│ /■\ |
│ (´∀`∩) |
│ (つ 丿 |
│ ( ヽノ |
│ し(_) |
│ |
│ Now Onigiring. ... |
│ |
│ 大変見苦しい場面がありました。 . |
│ そのままおにぎりでお待ちください。. |
│ |
│ |
└───────────────────────―┘
0078nobodyさん
02/04/29 15:31ID:s0WzG4fn良いんですか?例えばクッキーの要素とか。
0079nobodyさん
02/04/29 15:47ID:???もちろん。(例えば、で"クッキーの要素"を出すのはよく判らないが)
なるべく変数の有効範囲を狭くしたほうがいいかなと思うけど。
008078
02/04/29 15:54ID:???ありがとう。疑問解決したよ。何か俺の説明が悪かったね。
クッキーの要素ってのは、よく配布CGIスクリプトとかでよく見る
($year,$month,$week,・・・)みたいな奴のスカラ変数部ってこと。
0081nobodyさん
02/04/29 16:11ID:q+P1YCSQ入力する人がいるので、全角英数→半角英数に自動で変換させたいんですが
どんなふうにすれば良いでしょうか?
0082nobodyさん
02/04/29 16:18ID:???jcode.pl 使っての変換ならこれかと
http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2H
008381
02/04/29 16:21ID:q+P1YCSQありがとうございます!
0084nobodyさん
02/04/29 18:37ID:???0085nobodyさん
02/04/29 19:20ID:NmdFgil60086nobodyさん
02/04/29 22:00ID:NmdFgil60087nobodyさん
02/04/29 22:19ID:5LS+M/ng0088コテハン
02/04/29 22:20ID:???0089nobodyさん
02/04/29 22:22ID:5LS+M/ngこれは命令です。
0090_gnuzip
02/04/29 22:59ID:???@in1 = (0,1,2,4,5);
@in2 = (6,7,8);
@c = &sum(\@in1,\@in2);
print join(',',@c),"\n";
sub sum {
my($a,$b,$i,@ret,$n) = @_;
$n = $#{$a} > $#{$b} ? $#{$a} : $#{$b};
for($i=0;$i<=$n;$i++) {
push(@ret,${$a}[$i] + ${$b}[$i]);
}
return @ret;
}
0091nobodyさん
02/04/29 23:35ID:???0093nobodyさん
02/04/29 23:49ID:???知恵遅れは消えたら?
0094nobodyさん
02/04/29 23:53ID:???0099_gnuzip
02/04/30 00:03ID:???0100_gnuzip
02/04/30 00:04ID:???0103nobodyさん
02/04/30 00:17ID:???多いスレなのか?
90のような低レベルなこと書いてる場合じゃねーだろ!
こっちはいそがしいんだよ。 もうすこしだけまってやるからはやくしろよ。
役立たずどもはどっかいっちまえ。
0105nobodyさん
02/04/30 01:04ID:???0106nobodyさん
02/04/30 01:08ID:???0108_nobody
02/04/30 01:11ID:???先を越された
0109nobodyさん
02/04/30 02:16ID:???引きこもりに忙しいとかあるの?
0110nobodyさん
02/04/30 11:36ID:???煽ってるのはいつものように一人だとは思うが…。
0111nobodyさん
02/04/30 17:52ID:???0112nobodyさん
02/04/30 19:15ID:vVTDvLw/よろしくお願いします。
REMOTE_HOSTと、HTTP_USER_AGENTと、HTTP_REFERERを
取得して、それを同じディレクトリのdata_log.txt に
書き込んでいく、というCGIを作りたいのですが、
いろんなサンプルを見ながらツギハギで書いてみたのですが、
どうしてもここから先がわかりません。
CGIで外部ファイルに書き込みを行うにはどのような処理を
行えばいいのでしょうか?
ご教授いただければ幸いです。
0113112
02/04/30 19:16ID:vVTDvLw/#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
#情報取得部
$host = $ENV{'REMOTE_HOST'};#クライアントのIPを取得
$user_agent = $ENV{'HTTP_USER_AGENT'};#クライアントのブラウザ
$referer = $ENV{'HTTP_REFERER'};#飛んできたサイト
#情報表示部
print "<b>REMOTE_HOST</b>: $host";
print "<BR>";
print "<b>HTTP_USER_AGENT</b>: $user_agent";
print "<BR>";
print "<b>HTTP_REFERER</b>: $referer";
print "<BR>";
print "<BR>";
print "<a href=\"http://localhost/~aya/cgi/data_log.txt\" target=\"_blank\">ログを表\示</a>";
#情報記録部(? data_log.txt)
sub write {
open(LOG,"+<$data_log.txt");
@logs=<LOG>;
unshift(@logs,"$host,$user_agent,$referer\n");
seek(LOG,0,0);
truncate(LOG,0);
print LOG @logs;
close(LOG);
}
0114nobodyさん
02/04/30 19:22ID:???>open(LOG,"+<$data_log.txt");
この$が邪魔なんじゃない?
0115112
02/04/30 19:23ID:vVTDvLw/うっス!取ってみますッス!
0116112
02/04/30 19:25ID:vVTDvLw/open(LOG,"+<$data_log.txt");
$取って見ました!
ログを表示してみたところ、
何も書き込まれていませでした!(T-T)
0117nobodyさん
02/04/30 19:29ID:???0118nobodyさん
02/04/30 19:29ID:???タイプミス。
&write;
0120112
02/04/30 19:33ID:vVTDvLw/なるほど!subっていうのをどこかで呼ばないとダメなんですね!
…どうやって呼ぶのでしょうかm(_ _; m?
0121nobodyさん
02/04/30 19:34ID:???0123112
02/04/30 19:39ID:vVTDvLw/失敗しました!(T-T
print "<BR>";
print "<BR>";
print "<a href=\"http://localhost/~aya/cgi/data_log.txt\" target=\"_blank\">ログを表\示</a>";
write();
#情報記録部(? data_log.txt)
sub write {
open(LOG,"+<data_log.txt");
0124112
02/04/30 19:40ID:vVTDvLw/できました!!!!!!
みなさん、ありがとうございます!!
0125112
02/04/30 19:41ID:vVTDvLw/#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
#情報取得部
$host = $ENV{'REMOTE_HOST'};#クライアントのIPを取得
$user_agent = $ENV{'HTTP_USER_AGENT'};#クライアントのブラウザ
$referer = $ENV{'HTTP_REFERER'};#飛んできたサイト
#情報表示部
print "<b>REMOTE_HOST</b>: $host";
print "<BR>";
print "<b>HTTP_USER_AGENT</b>: $user_agent";
print "<BR>";
print "<b>HTTP_REFERER</b>: $referer";
print "<BR>";
print "<BR>";
print "<a href=\"http://localhost/~aya/cgi/data_log.txt\" target=\"_blank\">ログを表\示</a>";
&write;
#情報記録部(? data_log.txt)
sub write {
open(LOG,"+<data_log.txt");
@logs=<LOG>;
unshift(@logs,"$host,$user_agent,$referer\n");
seek(LOG,0,0);
truncate(LOG,0);
print LOG @logs;
close(LOG);
}
0126112
02/04/30 19:45ID:vVTDvLw/ここから、いろいろ応用できそうで、わくわくしてます♪
>>122
いえ、自力ではないです(^-^;
いろんなCGI配布サイトさまの、サンプルをかき集めて、
切り貼りしましたです。
アドバイス…というか、ズバリ回答を、ありがとうございました。
0128112
02/04/30 19:49ID:vVTDvLw/ありがとうございます。
私も早く回答者さんに回れるように、がんばります。
0129nobodyさん
02/04/30 19:53ID:???あ,write()だと組み込み関数のwriteになっちゃうのか.
&表記をしないのであれば ::write() だったね.スマンカッタ.
0130112
02/04/30 20:01ID:vVTDvLw/いえ、とんでもないです。
そういう場合もあるんですね。
勉強になりました♪
0132nobodyさん
02/04/30 20:42ID:???0135nobodyさん
02/04/30 21:25ID:???(´-`).。oO(XHTMLじゃダメだけどね… http://www.w3.org/TR/html401/index/elements.html 板違いスマソ…)
0137nobodyさん
02/04/30 23:02ID:gJDRgS/S0139137
02/04/30 23:11ID:gJDRgS/SJavaScriptの内容を 数字化して素人さんに解読されないよーにしたいんですけど
0140nobodyさん
02/04/30 23:12ID:64l1RWQD0142nobodyさん
02/04/30 23:34ID:???素人さんは解読しないから大丈夫だよ。
つーか、StringfromCharCodeって、JavaScriptの文自体を生成できるんかいな?
0143112
02/04/30 23:42ID:vVTDvLw/携帯からのアクセスだと、i-modeなら必ずdocomoのサーバーを
介してくる要求が来る筈ですし、c-htmlなんかを要求された
場合などが、見分けるヒントになりませんでしょうか?
素人見解ですいません。
0144137
02/04/30 23:59ID:gJDRgS/Sそーかも…
>>142
出来ますよ 実際ソース見ると
eval(String.fromCharCode(数字))
て、具合でしたから
0146nobody
02/05/01 00:14ID:???ソース隠しとか
http://hp.vector.co.jp/authors/VA013453/temp/junk_index.htm
↑のver2.11ってところ
0147nobodyさん
02/05/01 00:19ID:???スマートな隠蔽はスマートに解読されがち。
document.write("(゚Д゚)ゴルァ world!!"); するのに400行くらいのダミー行を用意すればいい。
詰まるところ木を隠すなら森。更に言うならば板違い。
0148137
02/05/01 00:29ID:JaMCiNKsすいません板違いで
ありがとうございました
0149145
02/05/01 00:42ID:???ありゃ、行っちゃったかな。まぁいいや。
#!/usr/bin/perl
undef $/;
$_ = <>;
s/^(.*?)=//o;
s/\+/ /og;
s/%([a-fA-F0-9][a-fA-F0-9])/pack("c",hex($1))/oge;
$mes = $_ ? $_ : "ここに入れる";
$_ = join(", ",unpack("C*",$_));
print <<"EOF";
Content-Type: text/html
<form action="stringToCharCode.cgi" method="POST">
<textarea name="in" cols="80" rows="30">$mes</textarea>
<input type="submit">
<input type="reset">
</form>
eval(String.fromCharCode($_));
EOF
0151nobodyさん
02/05/01 02:05ID:Q/hHiA0V文字化けします
perlじゃ無理なんですね
0152nobodyさん
02/05/01 02:27ID:???とりあえず、JavaScriptで書いてみた。JavaScriptは初めてなので適当ですが、
IE5で動作しました。得られたコードは、Netscape4では動かない可能性が高いです。
特に、日本語が含まれるとき。
<html>
<head>
<SCRIPT>
function toCharCode (str) {
var i = 0;
var ret = "eval(\n\tString.fromCharCode(\n\t\t";
var tmp = "";
if (str != "") {
while (i < (str.length - 1)) {
ret += str.charCodeAt(i) + ", ";
++i;
if (i % 16 == 0) {
ret += "\n\t\t";
}
}
ret += str.charCodeAt(i);
}
ret += "\n\t)\n);";
document.ret.text.value = ret;
}
</SCRIPT>
</head>
<body>
<form name="form" method="POST" action="">
<textarea rows="15" name="text" cols="82"></textarea><br>
<input type="button" value="変換" name="btn_tr" onClick="javascript:toCharCode(document.form.text.value)">
</form>
<form name="ret" method="POST" action="">
<textarea rows="15" name="text" cols="82"></textarea><br>
</form>
</body>
</html>
0153152
02/05/01 02:38ID:???<SCRIPT> → <SCRIPT LANGUAGE="JavaScript">
var tmp = ""; ←ゴミ
0154nobodyさん
02/05/01 03:33ID:???use strict;って何の為にするんですか?
やると処理が早くなるとか、サーバー負荷が減るとかそういう効果が
あるんですかね?
0155nobodyさん
02/05/01 03:35ID:IJ/Gv/S8www.eseven.jp
ウェッブに関するご相談はこちらまで
ホームページ作成からCGI構築まで
国内有数のデザイン・センスとトップクラスのコンピューター・スキルを
あわせもったスタッフが対応します
0156pear ◆FRUIT8pk
02/05/01 07:24ID:???どこからか落としたものデス
$agent = $ENV{'HTTP_USER_AGENT'};
if($agent =~ /^DoCoMo\/\d+\.\d+\/([^\/]*)/i){$name = "i-mode";}
elsif($agent =~ /^J-PHONE\//){$name = "J-Skyweb";}
elsif($agent =~ /^UP\.Browser[^-]*-(\w*) /i){$name = "EZweb";}
else{$name = "PCその他";}
0157nobodyさん
02/05/01 07:59ID:???グローバル変数の使用に警告を出したり間違いの可能性を指摘してくれたりします。
貴方の言う効果はありません。
でも出来るだけ書くことをお勧めします。
貴方以外の人がそのスクリプトを読むときに色々と助かります。
0161perl歴3日
02/05/01 11:33ID:???たとえば
あういうえあいうえいあいうえ
から 'いう' だけを削除したいときとか。
~tr/いう//d; ではすべての 「い」 と 「う」が削除されちゃいますよね。
0164nobodyさん
02/05/01 11:44ID:???0166nobodyさん
02/05/01 12:22ID:???0167nobodyさん
02/05/01 12:52ID:ISNd4ZR0を使用していますが、サブルーチン内で突然宣言したグローバル変数にエラーを出してくれません。
仕様なのでしょうか。
0168無知者
02/05/01 13:00ID:RKuTX2W0よくプロバイダのホームページなどに「HP作成」コーナーがありますが
そういうとこ行く場合でも、お店で売ってる「HP作成ソフト」は買って
おかないとお話にならないんでしょうか?
パソコンの種類はibookというものです。
0170nobodyさん
02/05/01 13:21ID:???0172nobodyさん
02/05/01 14:33ID:???まぁそりゃ一回書いて二度と見ない・手直ししないスクリプトや1行
スクリプトならね・・・
でも基本的には意味ある・意味ないの問題ではなく、その後問題に
ならないように癖としてつけておくべきものだと思ふ。
0173nobodyさん
02/05/01 14:34ID:Y6d+iOU0たしかPHPではグローバル変数はサブルーチン内で作成できないと思いましたが、
Perlでは間違って変数をグローバル宣言してしまっていてもわからないのですか。
0174nobodyさん
02/05/01 14:35ID:???なんだ、宣言って。local $global;とでもやったのかね。これって
全然グローバルじゃないって事わかってるだろうね?
0175あげ太郎
02/05/01 15:28ID:nNyYCbiy同じ内容の投稿を禁止するには
どうすればいいかわかりますか?
0176あげ太郎
02/05/01 15:30ID:nNyYCbiy0177168の無知
02/05/01 15:32ID:OCxUwcxhそもそもperlという言葉の意味を簡単でいいので教えれくださ
0178nobodyさん
02/05/01 15:43ID:???発言を記録する前に、発言者&内容と、最新の記事の発言者&内容を比較。
具体的なやり方が知りたければ、二重投稿禁止機能のあるBBSを探してそのソースを見るといい。
無料配布のでもたくさんあるだろ。
0179nobodyさん
02/05/01 15:45ID:???http://www.google.com/search?num=100&hl=ja&as_qdr=all&q=perl%82%C6%82%CD%82%C8%82%C9%82%A9&lr=lang_ja
0180nobodyさん
02/05/01 15:58ID:???ourはブロックスコープでuse varsはパッケージスコープを持っているので,
use strict;
sub hoge { use vars qw($hage); $hage = 'sage' }
hoge();
print "$hage\n";
は合格で,
use strict;
sub hoge { our $hage = 'sage' }
hoge();
print "$hage\n"; # Error!
は失格.
ちなみにstrict 'vars'が怒るのは
・パッケージが指定されていない
・パッケージ内でuse varsされていない
・ブロック内でmy,ourされていない
という条件を全て満たす変数にアクセスしようとした場合のみです.
間違ってグローバル宣言する事はまず無いと思うけど,宣言しただけではエラーは出ません.
0182nobodyさん
02/05/01 16:56ID:???この辺ですか?
0183nobodyさん
02/05/01 18:52ID:1jtifKOi参照渡しできなくなるのですか?
0184nobodyさん
02/05/01 18:56ID:???0186nobodyさん
02/05/01 20:37ID:Kie4dwlr自動的にリンクされるように設定したいんですが、
簡単に書きかえれるものなんでしょうか?
それともおれみたいな初心者は無理でしょうか?
0187nobodyさん
02/05/01 20:41ID:???スクリプト改造工房
http://pc.2ch.net/test/read.cgi/php/1012839651/
0188nobodyさん
02/05/01 21:51ID:c2Kry9FX親切に教えて頂きありがとうございます。
わたしのグローバル宣言とは、タイポで未宣言の変数名に
$abc="abc";
のように、存在しているかのように値を入れたことです。
エラーがでなかったので特定に困りました。
パッケージはプログラムの最初に宣言していました。
0189nobodyさん
02/05/01 22:56ID:???あれ? それは use strict; していればきちんと怒られると思うのですが…….
パッケージ云々について少し伝わらなかったような気がするので補足します.
これはプログラムの最初でパッケージ宣言をしているかどうかは関係ありません.
>>180でエラーになっていたところ
print "$hage\n"; # Error!
がありましたが,この場合でも
print "$package_name::hage\n"; # OK
のように変数にパッケージ名を指定すれば怒られずに済むという事です.
この際そのパッケージが実際に存在しているかどうかは問いません.
ぱっと見で参照先が特定できない変数を見つけたらエラーを出す,
というのが use strict 'vars'; です.
あと,Typoを防ぐのであれば /perl -w するのがよろしいかと.
0190nobodyさん
02/05/01 23:12ID:???0191nobodyさん
02/05/01 23:20ID:???0192nobodyさん
02/05/02 00:45ID:???教える方がコーマンチキじゃない(これが素晴らしい)
初心者は結構すぐに礼をしてる。
って辺りを言っているんだが、こういうこと書くと意図的に荒らす奴とかでそうだな。
0193_gnuzip
02/05/02 01:05ID:???教えるほうについては、たまたまそういう解答者がいただけだね。
荒らしについては、いつもの彼が連休でどっか逝ってるんでしょう。
0195183
02/05/02 01:14ID:+oT0W11F下のスクリプトなのですが、local宣言をmy宣言にすると
Can't declare ref-to-glob cast in my at foo.cgi line 10, near ")="
foo.cgi had compilation errors.
となってしまいます。どこを直せばよいのでしょうか?
#!/usr/local/bin/perl
$str='ギコギコニャーニャー。トカトントン';
print "$str\n";
&str_omit(*str,16,'…');
print "$str\n";
sub str_omit
{
local(*str,$size,$omit)=@_;
local($buf)=substr($str,0,$size);
if($buf!~/^([\x00-\x7f]|[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])*$/){
$buf=substr($str,0,$size-1);
}
if(length($buf)<length($str)){ $buf.=$omit; }
$str=$buf;
return "$str";
}
__END__
0198nobodyさん
02/05/02 01:49ID:???敢えて型グロブを使うなら
×
my(*str,$size,$omit)=@_;
○
local *str = shift;
my($size,$omit)=@_;
0199あぼーん
NGNG0200nobodyさん
02/05/02 04:20ID:Opu6NMoF0204nobodyさん
02/05/02 16:25ID:Opu6NMoFお前を見てるとむかつくんだよ。死ね!!!!!!
死ね!
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
(省略されました・・全てを読むにはここを押してください)
0205nobodyさん
02/05/02 16:26ID:???0206nobodyさん
02/05/02 16:30ID:???・.htaccessで制限
・ログの拡張子を.cgiや.plにしてしまう
サーバーによって使えたり使えなかったりするけど。
ちなみにコーディングの話じゃないからスレ違いな。
0207nobodyさん
02/05/02 16:37ID:???せっかく書いちゃったので。
ログ入れてるディレクトリの .htaccess で
<Files "*.log">
Order allow,deny
Deny from all
</Files>
0209nobodyさん
02/05/02 16:52ID:???出来ない方法を教えられてると思ったか?
出来るよ。
0210nobodyさん
02/05/02 16:52ID:???調べたところrequireしたplファイル内のサブルーチンで
宣言するとエラーにならず、メインのルーチン内で宣言するとエラーになるようです。
0211183
02/05/02 16:56ID:lVIeVo5Wすいません。型グロブというのはよくわかりません。
Cのようなポインタ渡しをPerlで行う方法はありませんか?
0212207
02/05/02 17:00ID:???試せば分かることじゃん。まず自分で試そうよ。
もちろん、悪意のあるアドバイスかもしれんので、apacheの<Files>
の意味を調べてからね。
http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#files
で、CGI内でのファイルの読み書きは、httpd(webサーバ)とは関係ないので、
いくらでもできるよ。
system("cat /etc/passwd");
とか。
0213nobodyさん
02/05/02 17:03ID:???| >>209
| うるせーモカ!うるせーモカ!うるせーモカ!
∧ ∧ |/\_________
(,,゚Д゚)____.
(つ/~ ※ ※ \
/※ ※ ※ ※ \
>>205じゃないよ
0214nobodyさん
02/05/02 17:07ID:???↓調べてみた。型グロブ。
http://www5a.biglobe.ne.jp/~n_rieko/perl/1.htm
リファレンス渡しについては
perldoc perlref
0215nobodyさん
02/05/02 18:39ID:???無ければデフォルト値をセットしたいのですが、変数で
よく使われるテクニック(?)が使えませんでした。
@week = qw(日 月 火 水 木 金 土);# ユーザ任せ
my @week = @week || qw(Sun Mon Tue Wed Thu Fri Sat);
これでは $week[0] に配列の要素数が入るだけのようでした。
それで考えたのは下記ですが、もっと簡単な方法ありませんか?
my @week = @week ? @week : qw(Sun Mon Tue Wed Thu Fri Sat);
0216215
02/05/02 19:01ID:???セオリー通りのやり方が知りたいのでした。宜しくお願いします。
0217nobodyさん
02/05/02 19:07ID:???@week or @week = qw(Sun Mon Tue Wed Thu Fri Sat);
変数だったら $var ||= $default; が普通かなー。
0219nobodyさん
02/05/02 21:28ID:???if ($in{'name'} eq "#pass") { $in{'name'} = "管理人 ★"; }
これでキャップと似たようなものになるはずなんですが、
パスを打って書き込むと「管理人 ★」になるはずですが
「管理人 ☆」になってしまいます。
どうすればいいのでしょうか?
0220197
02/05/02 21:35ID:???型グロブがよくわらんって、あなた自分で使っているやつだよ。
local(*str,$size,$omit)=@_; って書いてる、*strの部分。
型グロブには my は使えんから、>>195のエラーが出るって
とこまで書かないとダメかいね。
しかし、なんでスカラ値渡すのに、リファレンスや、型グロブが
必要なのか謎。
0221nobodyさん
02/05/02 21:39ID:???パス付きでも何でもいいけど、
書き込んだ時にどういう順番で処理されるかをもう一度考えてみれ。
あと、if ($in{'name'} =~ /★/) { $in{'name'}=~ s/★/☆/g; }は
$in{'name'} =~ s/★/☆/g; で十分。
0223nobodyさん
02/05/02 21:47ID:???if ($in{'name'} eq "#pass") { $in{'name'} = "管理人 ★"; }
else{$in{'name'} =~ s/★/☆/g;}
としておけば問題は起こらないと思われ。
これでもまだ「管理人 ☆」になるなら、
1:プレビュー画面を挟んでいないか
2:この処理が2回以上行なわれるようになっていないか
を確認するべき。
0224219
02/05/02 22:25ID:???再確認してみたら
if ($in{'name'} eq "#pass") { $in{'name'} = "管理人 ★"; }
if ($in{'name'} =~ /★/) { $in{'name'}=~ s/★/☆/g; }
と書かれており、上下を入れ替えて試してみたら正常に動作しました。
つまり、ただ自分がミスしてただけでした(w
>>221-223
質問に答えてくれてどうもありがとうございました。
0225nobodyさん
02/05/03 01:45ID:???if ($in{'name'}=~ /アホ/) { $in{'name'}= 'Dream ★'; }
elsif ($in{'name'}=~ /無能/) { $in{'name'}= '_gunzip'; }
elsif ($in{'name'}=~ /厨/) { $in{'name'}= '弐編'; }
0226pear ◆FRUIT8pk
02/05/03 02:45ID:???あ、そのコードを使うなら、下に2行足さないとダメですね
elsif ($in{'name'}=~ /用(無|な)し/) { $in{'name'}= 'pear'; }
else{ $in{'name'}='その他名無し'; }
0227nobodyさん
02/05/03 03:03ID:???効率の良い方法はありませんか?
ファイルの一覧は、@filesに格納してあります。
入力された、$in{'word'}が含まれるファイルをリストアップしたいのです。
よろしくおながいします。
0228nobodyさん
02/05/03 03:57ID:???楽勝だな!
0229nobodyさん
02/05/03 07:36ID:???{
my $tmp;
@files = grep {
open FILE, $_ or die;
read FILE, $tmp, -s FILE;
close FILE;
$tmp =~ /\Q$in{'word'}\E/;
} @files;
}
0230nobodyさん
02/05/03 07:38ID:???my $tmp;
@files = grep {
open FILE, $_ or die;
read FILE, $tmp, -s FILE;
close FILE;
$tmp =~ /\Q$in{'word'}\E/o;
} @files;
}
すまん、/oつけ忘れた。
0231nobodyさん
02/05/03 07:57ID:???でも作りたいものはあります。
まず、お手数かけて恐縮ですがこのサイトを見てみてください。
http://kooks-highhat.com/jpn_index.html
ここの「カラーピックアップシステム」では、何種類もの色と柄を
自由に組み合わせてオリジナルTシャツ作りのシュミレーションができる
ようになっています。
私は、こういったことをTシャツの色と柄ではなく、
「複数種のワイシャツ(写真画像)」と「複数種のネクタイ(写真画像)」を自由に組み合わせて
シュミレートできるようなシステムを作りたいと思っています。
しかしながら全くの初心者のため、どんな言語をどんなふうに使えばできるのか
さっぱりわかりません。
どなたか教えて下さいませんか?
とりあえず「すぐわかるPerl」とかで学べばよろしいのでしょうか?
0234nobodyさん
02/05/03 08:55ID:6+RS1vf9コテハンは死ね!
0235nobodyさん
02/05/03 08:56ID:6+RS1vf90236nobodyさん
02/05/03 09:04ID:6+RS1vf9gdsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgsdgs
xs5r6rs56rs56rs56rs56rs56rs56rs56jtx,7wz434w34w34w34w34w34w34w34w34w34w34,........
0237nobodyさん
02/05/03 10:54ID:6+RS1vf90238nobodyさん
02/05/03 10:54ID:6+RS1vf90240nobodyさん
02/05/03 11:05ID:6+RS1vf90241nobodyさん
02/05/03 11:09ID:6+RS1vf9スキルの低い奴ばっかり
0242こてはん ◆W181N/6Q
02/05/03 11:22ID:???0244nobodyさん
02/05/03 11:26ID:6+RS1vf9スキルの低い奴ばっかり
0245nobodyさん
02/05/03 11:48ID:KcX/dW600246nobodyさん
02/05/03 12:01ID:6+RS1vf9要するに初心者以下のレベルってことよ(ゲラ
おめーら小学校からやりなおせよ(ハゲワラ
0248nobodyさん
02/05/03 12:10ID:???0249nobodyさん
02/05/03 12:11ID:6+RS1vf90251245
02/05/03 12:21ID:KcX/dW60my (%s) = @_;
my %test;
%h_test = ("1", "h1",
"2", "h2");
%$s = %h_test;
}
これでは駄目でしょうか?
0252245
02/05/03 12:24ID:KcX/dW60my %test; -> my %h_test
0255nobodyさん
02/05/03 12:36ID:6+RS1vf9はげ指導医
0256nobodyさん
02/05/03 12:37ID:6+RS1vf9激しく同意
0257nobodyさん
02/05/03 12:59ID:6+RS1vf90259_gnuzip
02/05/03 13:18ID:???すまど
0261nobodyさん
02/05/03 13:43ID:6+RS1vf9│□ ■2ch BBS . − Microsoft Internet Explorer 囗曰区| |
├───────────────────────┬─┤
│ファイル(F) 編集(E) 表示(V) お気に入り(A) モナー(∀) |::田|
├────────────────┬──────┴─┤
| ← → × 圍 合 | Q 》|
| 戻る 進む 中止 更新 ホーム | 検索 |
├────┬───────────┴──┬─┬───┤
│アド レス(D) | □http://www.2ch.net/2ch.html. . |▼|⇒移動|
├────┴───┬┬─────────┴─┴──┬┤
│ ├┤ ├┤
|2ちゃんねる.. || ||
│2chの入り口.. || ||
│2ch総合案内┌───────────────────────┐
│. | 2ch. |
│ ├───────────────────────┤
│おすすめ | 1は不正な処理を行いました 。 ┌───┐ |
│モナー | 残念ですが1の人生を | 終了.... | |
│ | 終了させてあげて下さい。(推奨). └───┘ |
│ | |
│ └───────────────────────┘
│特別企画 ├┤ ├┤
├┬──────┬┼┼┬────────────┬┼┤
├┴──────┴┴┴┴──┬─┬─┬─────┴┴┤
│□ エラーが発生しました | | |●インターネット |
└─────────────┴─┴─┴───────┘
0262nobodyさん
02/05/03 15:29ID:???0263nobodyさん
02/05/03 15:50ID:7hc2ohlWただ、<img src="image.png">などの場合の""の中は変換したくないのですが。
0264nobodyさん
02/05/03 15:57ID:???すっごいめんどうくさい正規表現を組む。
0265nobodyさん
02/05/03 16:19ID:???$str = join '', map {
/^</ and $_ = join '', map { /^"/ or $_ = lc; $_ } split /("[^"]*")/; $_
} split /(<[^>]*>)/, $str;
$strにHTML文書を入れれ。
0266nobodyさん
02/05/03 16:21ID:???alt='この中では"が使えます'
が入ってた場合は?
0267nobodyさん
02/05/03 16:43ID:???$str = join '', map {
/^</ and $_ = join '',
map { /["']$/ or $_ = lc; $_ } split /(["'])([^\1]*\1)/; $_
} split /(<[^>]*>)/, $str;
こんな感じかな? 適当スマソ。
0268nobodyさん
02/05/03 18:01ID:7wVKBbUQprint "Content-type: text/plain\n\n";
print "Hello Perl !";
これをローカルで試そうとして、http://127.0.0.1/chapter1/1.cgi
と入力しました。が、なぜかダウンロードしてしまいます。(保存するか聞いてくる)
text/htmlにするとちゃんとブラウザに表示されます。
解決策教えてください。
0269nobodyさん
02/05/03 18:06ID:???0271nobodyさん
02/05/03 18:13ID:7wVKBbUQダウンロードせずに、結果をブラウザで表示させたいんです。
>>270
Netscape6で確かめたらちゃんとできました。Opera6.01だとだめでしたが。
どうもありがとうございました。
0272nobodyさん
02/05/03 19:17ID:???0274cova
02/05/03 19:26ID:???スカラ変数 = (stat(ファイルハンドル または ファイル名))[インデックス番号];
---------------------------------------------------------------------
インデックス番号
0 → ファイルシステムのデバイス番号
1 → iノード番号
2 → ファイルのモード
3 → ハードリンクの数
4 → ファイル所有者のユーザID
5 → ファイル所有者のグループID
6 → デバイスID
7 → ファイルサイズ(バイト単位)
8 → 最終アクセス時間
9 → 最終変更時間
10→ iノード変更時間
11→ ファイルシステムI/Oの最適ブロックサイズ
12→ 割り当て済みのブロックサイズ
0275cova
02/05/03 19:27ID:???data.datというファイルの最終アクセス時間を取得する場合は
$accesstime = (stat(data.dat))[8];
という感じ
0276nobodyさん
02/05/03 19:29ID:7hc2ohlWそれだと Foo="Bar" の組み合わせが複数あると最初の一つしかできませんでした。
というか自分がその事書いてなかった。。逝ってきます。
0278nobodyさん
02/05/03 20:01ID:???ごめんなさい……。
直すついでにPerlメモの『HTMLタグの正規表現』(のコメント抜き)を取り入れてみました。
ttp://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag
my $tag_regex_ = q{[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))};
$str = join '', map {
/^</ and $_ = join '',
map { /["']$/ or $_ = lc; $_ } split /(["'])(.*?\1)/s; $_
} split /(<$tag_regex_)/o, $str;
で、試してみたら <!DOCTYPE まで小文字になって鬱。
0282nobodyさん
02/05/03 20:40ID:???うまく動きました。ありがとうございました。
あと、<!DOCTYPEは削除してしまうので特に問題ないです。
0283nobodyさん
02/05/03 21:05ID:vg/qOBA6さっそくですが、質問です。
これはどういういみですか?第2引数がわかりません。
push(@sqcookie, "${name}_${value}");
0284nobodyさん
02/05/03 21:05ID:???$url = '([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)';
$FORM{'comment'} =~ s/$url/<a href=\"$url\" target=\"_top\">$url<\/a>/g;
こうしても上手くリンクされますか?
0285284
02/05/03 21:06ID:???こうしても上手くリンクされますか?
↓
こうすると上手くリンクされますか?
0289nobodyさん
02/05/03 21:13ID:???$scalar = "10";
$scalar += 10;
とやらないで,いきなり
$scalar += 10;
とやるとスカラ変数'$scalar'にはundef値である0が代入されていますが
このundef値って何て読むんですか?アンダフ値でいいの?
0290284
02/05/03 21:21ID:???実際に試してみましたが、無理でした・・・。
どうすればURLが自動リンクされるのでしょうか?
0292nobodyさん
02/05/03 21:29ID:???なるほど アンデファイン undefine の略か
じゃあ人前で使うときはアンデファインでいいや
0293nobodyさん
02/05/03 21:29ID:???後方参照($1とか$2とか)は知ってる?
0295nobodyさん
02/05/03 21:34ID:???0296_gnuzip
02/05/03 21:34ID:???(_____)ゝ、 (_____) y (_____)
/ :: :: :: ヽ 〉 /-‐:: ::‐-ヽ / / :: :: :: ヽ
_./ (・ )ll(・ ) ∨ _/ 0) i! 0) ∨ _/ ( ・)i!(・ ) ゙、_
// :: :: ∈ゝ :: ::ヽ // :: ‐-‐ :: ヽ // :: ー一 :: ヽ\
. ゝ/:: :: :: :: :: ::ヽ ゝ/ :: :: :: :: :: ヽ ゝ/ :: :: :: :: :: ヽく
 ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄
| | | | | |
⊂! !つ ⊂! !つ ⊂! !つ
教えてあげないよ!ジャン!
0298さゆ ◆ugYa5.J6
02/05/03 21:51ID:???()でくくった部分にマッチした文字列は$1とか$2で参照できる。
$FORM{'comment'} =~ s/$url/<a href="$2" target="_top">$2<\/a>/og;
0300nobodyさん
02/05/03 22:08ID:CL/oAkFo0301nobodyさん
02/05/03 22:10ID:???役に立たない細かい事を色々と。$urlの中の([^=^\"]|^)は余分。
あと、文字クラス[〜]の中ではほとんどの文字はエスケープしなくてもいい。
ただし"-"はマジカルインクリメント(例:[a-z])の効果があるから最初か最後に置く。
[\w\.\~\-\/\?\&\=\@\;\#\:\%]+ → [\w.~/?&=@;#:%-]+
つかここで聞くよりPerlメモを・・・・ (ボソ
0302pear@空気固定 ◆FRUIT8pk
02/05/03 22:27ID:???意味がわかりません。
<a href="test.cgi" accesskey="1">
ということかな?
0304nobodyさん
02/05/03 23:02ID:apBthE5H\n\n〜 と複数続いていたら
\n一つだけに やるのは どうすればよいのでしょうか?
s/[\n]*$/\n/g
でうまくいきませんでした
0305nobodyさん
02/05/03 23:14ID:???0310nobodyさん
02/05/04 00:05ID:???テキストファイル内の文字列をjcode.plにてEUCに変換後、
ひらがだけを抜き出したいのですが、検索対象文字リストを
tr/ぁ-ん//cd にすると結果が文字化けしてしまいます。
この場合、検索対象文字リストはどのように指定したら良いのでしょうか?
0311303
02/05/04 00:08ID:???Perlでは、数字じゃないものもインクリメントできるから、マジカル。
perlop の Auto-increment and Auto-decrement のとこに
「オートインクリメントオペレータには、ちょっとしたマジックが
仕込んである」と書いてある。
perlopには
「レンジオペレータは、数字じゃないものが来た時、マジカルインクリメント
アルゴリズムを使う」
って書いてあるよぅ。
0316nobodyさん
02/05/04 00:26ID:GNJILI/Xログファイルの$hoge[3]にそれぞれ数字がありまして
その数の合計を求めるにはどうすれば宜しいのでしょうか?
ログファイルは\tで区切ってあります。
0317310
02/05/04 00:26ID:???実はすでにあちらのメモも試したのですが、うまくいかなかったのです。
でも、実際のところはどこがうまくいっていないのか理解できていないので
うまく適用できていなかったのかもしれませんが・・・。
0318nobodyさん
02/05/04 00:33ID:???改善されてねーな
112 :nobodyさん :02/05/03 18:40 ID:???
>>110
「ログファイルの$hoge[3]」って何よ。
「ログファイルは\tで区切ってあります」ってのはレコード区切りが\nでデータ区切りが\tって事か?
わかるように書いてくれ。いや、大体わかっているんだけどな。
0319nobodyさん
02/05/04 00:35ID:???\tで区切ってるログファイルの4番目のとこに数字があるってこと?
$count=0;
open(FILE,"./$filename");
while(<FILE>){
@hoge=split(/\t/);
$count+=$hoge[3];
}
close(FILE);
print $count;
0321nobodyさん
02/05/04 00:49ID:???$_ = '文字コードがEUCの場合ね';
s/\x82[\x9F-\xF1]//g;
print;
これでひらがなだけ削れる
逆は自分で考えれ
0322nobodyさん
02/05/04 00:49ID:???$hoge ="123あいうえ456さしすせ-*/アイウabcdエオ";
$Zhiragana = '(?:\xA4[\xA1-\xF3])';
$hoge =~ s/$Zhiragana//g;
EUCこれでできるよ。
実行したら print $hoge; で表示されるのは
123456-*/愛上尾アウabcdエオ
あなたはどう書いてるの?EUCにコンバートするところとかは?
0323nobodyさん
02/05/04 00:53ID:/IfudcOZ0324nobodyさん
02/05/04 00:54ID:???EUCはこうか
s/\xA4[\xA1-\xF3]//g;
0326310
02/05/04 00:56ID:???ありがとうございます!うまく動きました。
trを使っていたのが間違いだったのでしょうか??
兎にも角にも、ありがとうございました。
0327nobodyさん
02/05/04 00:56ID:???LWPを使う。
0328nobodyさん
02/05/04 00:57ID:???0331310
02/05/04 00:59ID:???お答えありがとうございます。そちらも試したのですが
SCALAR(0xc963c4)
のエラーがでてしまいます・・・。なぜでしょう?
0332_gunzip
02/05/04 01:00ID:???レベルが低いよ。
0333310
02/05/04 01:02ID:???とりあえず、入力される文字列は全て
jcode::convert(\$hoge, 'euc');
にてeucにコンバートしております。
で、とりあえずいまはWin2000上のコマンドプロンプトで動かしているので
出力前にsjisにして出力しています。
0334nobodyさん
02/05/04 01:04ID:/IfudcOZLWPですか・・
ちょっと調べてきます・・・
0338nobodyさん
02/05/04 01:08ID:???0340nobodyさん
02/05/04 01:10ID:???print "写真うpしる!話はそれからだ!\n";
}
else {
print "逝ってヨシ!\n";
}
0341nobodyさん
02/05/04 01:11ID:???0342316
02/05/04 01:15ID:GNJILI/Xエラーになっちゃいました。
$count+って使えます?
0345_gunzip
02/05/04 01:37ID:???過去レスで何度も答えている内容をいまだに質問してくるということで、
そのために答えるほうもまとを得ない答えになってしまっているということ。
0348nobodyさん
02/05/04 01:50ID:???暇な奴だな(w
0350nobodyさん
02/05/04 01:56ID:???漫画でよくあるネタだよね(w
↓ここに投稿したくなった。
バカの一つ覚えな展開2
http://comic.2ch.net/test/read.cgi/comic/1019059437/
0351nobodyさん
02/05/04 01:58ID:???0352nobodyさん
02/05/04 02:00ID:???0353nobodyさん
02/05/04 02:08ID:???0354nobodyさん
02/05/04 02:11ID:???http://www.google.com/search?hl=ja&q=lwp%82%C1%82%C4%82%C8%82%C9%81H&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0355352
02/05/04 02:13ID:???>>353 LibWww-Perl の略じゃないの?
http://www.linpro.no/lwp/
Perl関連でなけりゃLight Weight Processの略かもしれないがな。
0357nobodyさん
02/05/04 02:54ID:???0358ん〜さっぱわからん
02/05/04 04:11ID:qVSStWkLんで、そのファイルには20行のテキストデータがあって
その1行の文字数はマチマチである。
さて、このファイルの5行目から10行目までのデータを
読み込みたい。
でも、ファイル全部を読み込んで後から整形するのはいやだ。
どうすればいいのだろうかぁ?
0359nobodyさん
02/05/04 04:13ID:???あとは、wgetやWWWcp等の外部コマンドを呼ぶしか、簡単な方法は
無いと思う。
めんどくさい方法でもいんなら、Socket使ってうりうりやる方法もある。
0360nobodyさん
02/05/04 04:15ID:???foreach(1..5) {
<IN>;
}
foreach(1..5) {
push(@data,<IN>);
}
でどうかね。
0361nobodyさん
02/05/04 04:19ID:Wv66U69Iとしているのですが、ブラウザから呼び出すと何故か動きません。
「500 Internal Server Error」とエラーメッセージが出てしまいます。
文字コードも置き場所もパーミッションも.htaccessも問題無いと思うし、
TELNETで単体実行してもちゃんと動きます。
エラーログを見ると、「Premature end of script headers」となっています。
・・・スクリプトヘッダーの時期尚早の終わり?とな?ん?
他の人が作っていたCGIを見てみても、とりあえず一行目の
「#!/usr/local/bin/perl」というのは一致しているし・・・
皆さん、どうぞ知恵をお貸し下さい。
0362ん〜さっぱわからん
02/05/04 04:25ID:qVSStWkLそんなに簡単にできちゃうの?もうずいぶんと長い間悩んでいるのだが
でも、それって結局ファイル全部読み込んでるのと同じじゃないのだろうか?
0363nobodyさん
02/05/04 04:28ID:???改行コードがDOS改行になってるっていうオチはないか。
とりあえず、telnet経由で単独で実行した結果の先頭5行くらいコピペ
してちょ。
0365なんとなくわかってきた
02/05/04 04:38ID:qVSStWkLんん、なんとなくわかってきますた。すいませぬ。
つまりは2ch掲示板の
最新50 1-100 100-200 200-300
っつーのをやりたいのですが、やはりこの方法でやっているのでしょうか?
0366361
02/05/04 04:39ID:Wv66U69I秀丸を使って、EUCからS-JIS、JIS、UNICODEにUTF-8まで試してみました。
以下は単独実行の結果です。
dalrq000@sv29:~/public_html/acjik/abcd/cgilib>./jiktes.cgi
Content-type: text/html
<html>
<body bgcolor=silver text=navy>
<h1>CGI TEST</h1>
length:<p>
IP Addres:<p>
data:<p>
(以下略)
・・・どんなでしょうか?
0367nobodyさん
02/05/04 04:44ID:???っかしいなぁ。
出力はそれでOK。
ためしに、
#!/usr/local/bin/perl
print "Content-Type: text/html\n\nほげほげ";
だけ書いたスクリプトだとどうなるかな。これでだめなら、
webサーバの設定(httpd.confか.htaccess)がおかしいと思う。
0369わかりましたぁ!
02/05/04 04:50ID:qVSStWkLですよね。なんとか理解してきました。
早速試してみます。ありがとうございます。
・・・しかし、随分長い間Perl書いてるのになんで
教える側にまわれないんだろう?(ショボン
0370361
02/05/04 04:58ID:Wv66U69I.htaccessは以下の二行だけです。
AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .cgi/
他の人が作成してちゃんと動いているCGIのディレクトリ内には、
.htaccessはありません。当然削除して試してみましたが駄目でした。
更に、その人のディレクトリに私のCGIを置いて試してもみました。
httpd.confの方は見る事も禁止されてるので、なんとも言えません。
0372361
02/05/04 05:37ID:Wv66U69Iそれが・・・それらのファイル、エラく大掛かりなんで、ドコを
どうイジったらいいか分析するのに凄く時間が掛りそうなんです。
とりあえず移動させずに、ブラウザからアクセスするとForbiddenと
言ってきます。これは、一応CGIの実行結果みたいです。
関連するらしいファイルをまとめて(怪しいですが)私のトコにコピーし、
ブラウザから呼び出してみると・・・500 Internal Server Errorになります。
あ、「ほげほげ」もやっぱり駄目みたいです。
0373nobodyさん
02/05/04 05:39ID:???オマエには無理じゃないのか?
FreeBSDのWebサーバ上にCGIスクリプトをアップしてるわけだろ。
秀丸で文字コード変換を試したっつーことはWinからアップしてるだろ。
アップはFTPだと思うが、結局アップするときにバイナリモードでやったのか?
オマエのことだから自動変換かアスキーモードでやっていないか?
あとは、パーミッションは大丈夫だと言ってるが、上位ディレクトリのパーミッション
まで確認できてるのか?
それと、371 が書いてることも合わせて確認しろ。
0374nobodyさん
02/05/04 05:40ID:fEiPwaMdLWPで取得したデータを$xに入れる。
その$xをwhileで処理させる超シンプルなソースお願いです。
0375nobodyさん
02/05/04 05:45ID:???foreachでも(1..5)とか指定すればwhileで5回繰り返しやったのと
結果以外の部分でも同じ位の負荷だとかになるんでしょうかね?
後、どっかのスレで書けるなら全部whileの方がいいと聞きましたが
全部読む必要があるときなんかもwhileで書いた方が良いんですかね?
0376361
02/05/04 05:56ID:Wv66U69Iん?確かにWinからですが、CGIの類ってASCIIで
転送するんじゃなかったんですか?
パーミッションはpublic_html以下から、とりあえず777にしてみてます。
0377361
02/05/04 06:09ID:Wv66U69ICGIの類っちゅうか、スクリプト言語の類ですね。
0378371
02/05/04 06:09ID:???ASCIIでやったほうが、改行コード変換してくれるので楽だけど、
できればあらかじめUNIX改行(LF)にしておいて、バイナリモードで
転送したほうが確実。
(>>363で改行コードの指摘したのはそれなんだけど)
んで、Forbiddenってのは、CGIの実行結果じゃく、サーバが返してる
エラーだと思うんだけど、それはおいといて、
まずは>>367の2行スクリプト試してよ。
不安なので、public_html/ 直下に置いて、.htaccess アリの場合と
無しの場合と、telnet で直接実行した場合の3通りの結果よろしく。
0379361
02/05/04 06:42ID:Wv66U69IEUCにしておいてバイナリモード転送。・・・同じですね。
でも、363の内容で問題が起こってたとしたら、
単独実行も出来なかったのでは?
その人は403.htmlってファイルを自分で用意してて、
それを表示させてるみたいです。
試しましたよ。「ほげほげ」って、その2行スクリプトの事です。
先程改めて、EUCにしておいてバイナリ転送して試しましたが、駄目みたいです。
public_html直下に置く件、.htaccessの件、直接実行の件、
試しましたがどれも駄目みたいです。
0380371
02/05/04 06:51ID:???EUCは文字コードで、改行コードとはぜーんぜん関係ないんだけど、
それはまぁいいや。
とりあえず、例の2行スクリプトがだめなら、君のせいじゃなくて、
サーバの設定の問題しか考えられないので、管理してる人に
相談しよう。
0381nobodyさん
02/05/04 06:57ID:???0382361
02/05/04 07:24ID:Wv66U69Iへー、今までそれらはセットになってるんだと思っでもてました。メモメモ。
でも、373の彼もその辺まで考えてたとは思えないなー?
もう5日前からサポートにメールしてるんですが、リアクションが無いんです。
GWをフルに休んでるのか、誰もメールをチェックしてないのか・・・
太陽が眩しい。とりあえずもう寝ます。お付き合いありがとうございました。
>>381
ん?・・・それ、今.htaccessに追加してやってみました。駄目です。
0383nobodyさん
02/05/04 07:35ID:???結局今まで出ているエラーは
Premature end of script headers
これなんでしょ?だとしたら、cgi は動いているんだよ
で、俺が見て気になった部分なんだけど
#!/usr/local/bin/perl
print "Content-Type: text/html\n\nほげほげ";
↑これを
#!/usr/local/bin/perl
print "Content-Type: text/html\r\n\r\nほげほげ";
↑こうやっても駄目カナ?
以前、一度これではまった覚えあるから…
0384nobodyさん
02/05/04 07:38ID:???0385383
02/05/04 07:43ID:???0386nobodyさん
02/05/04 07:45ID:???(゚Д゚)ハァ?
何言っているの君?
>>361
> エラーログを見ると、「Premature end of script headers」となっています。
> ・・・スクリプトヘッダーの時期尚早の終わり?とな?ん?
> 他の人が作っていたCGIを見てみても、とりあえず一行目の
> 「#!/usr/local/bin/perl」というのは一致しているし・・・
日本語読めますかぁ?
0388nobodyさん
02/05/04 07:53ID:???ってスクリプトが実行できていないときにも出るよ。
0390nobodyさん
02/05/04 07:55ID:???#!/usr/local/bin/perl
の行が間違ってても、Premature end of script headers になるよん。
なので、改行がDOS改行(CR+LF)になってると、
「/usr/local/bin/perl^M」ってファイルを実行しようとして、上記のエラーになる。
ただしその場合、コマンドラインから実行しようとすると、コマンドが
見つからないっていうエラーになるはずなので、今回はあてはまらないんだよね。
0391nobodyさん
02/05/04 08:05ID:???鬱。間違えた
>>388 が正しい。ゴメソ
>>398
> ただしその場合、コマンドラインから実行しようとすると、コマンドが
> 見つからないっていうエラーになるはずなので、今回はあてはまらないんだよね。
だから、cgi は動いていると判断するのが妥当だろ。なんで、.htaccess に
話をもって行くのが疑問…
0392nobodyさん
02/05/04 08:06ID:???Premature end of script headers でるよん。
0393nobodyさん
02/05/04 08:13ID:???0394nobodyさん
02/05/04 08:26ID:???いろいろなケースが考えられるんじゃないかな?
質問者の利用している環境がよくわからないので、何とも言えませんが。
Perlスクリプトとしては実行できているのに、CGIでは動作していない
ようなので、あらゆる可能性を考えてみるのも悪くないと思うよ。
まぁ、こういう時は、単純なケアレスミスだったりするかもしれないけど。
0395nobodyさん
02/05/04 13:02ID:KUHaKz9Topen(FILE,"./log.txt");
@data=<FILE>;
close(FILE);
$num=1;
$i=0;
print "Content-type: text/plain\n\n";
while(($data[$i] ne '') or $num<8){
($name,$message)=split(/\t/,$data[$i]);
print "名前$num:$name\n";
print "メッセージ$num:$massage\n";
$i++;
$num++;
}
logファイルを読み込んでそれをただブラウザに表示させるプログラムです。
logファイルから読み込んだデータが8行以上の場合は7行まで表示させて、7行に満たない場合は
そこで表示を終了させたいのですが、データが7行未満しかないときでもwhile文を抜け出してくれません。
配列にデータが入ってない場合はどのように条件にしたら良いのでしょう。
0398nobodyさん
02/05/04 14:54ID:???17氏のbbs.cgiからトリップの部分だけコピペしましたが動作しませんでした・・・。
どうすればトリップが使えるようになりますか?
0399nobodyさん
02/05/04 15:06ID:???名前欄に「#〜〜」と入れる。
というネタレスはさておき。
$name = $in{'name'};
$name =~ s/◆/◇/g;
if($name =~ s/#(.+)$//g){
$key = $1;
$salt = substr(substr($key, 1, 2) . "H.", 0, 2);
$salt =~ tr/:;<=>?\@[\\]^_`/ABCDEFGabcdef/;
$salt =~ s/[^\.\/0-9A-Za-z]/\./g;
$trip = substr(crypt($key, $salt), -8);
$name .= "◆$trip";
}
漏れはこうやって使ってる。
0400さらなる謎
02/05/04 15:50ID:qVSStWkL>>360さま
下のようなテストのスクリプトを書いて試してみたんだけど
#(ok)の方では正しい答えがえられるのに
コメントアウトしてある#(ng)では11行目以下のデータも
@LOGに読み込んでしまうのですます、はい。
なんでだろ?同じ筈なのに・・・・謎。
#!/usr/local/bin/perl
#==========================================
open(IN,"test.dat");
foreach(1..5) { <IN>; }
foreach(1..5) { push(@LOG,"".<IN>); } #(ok)
#foreach(1..5) { push(@LOG,<IN>); } #(ng)
close(IN);
#==========================================
print "Content-type: text/html\n\n";
print "<HTML>\n";
foreach $data(@LOG){
print "$data<BR>\n";
}
print "</HTML>\n";
exit;
サーバーはfreeBSDのアパッチ。
0401nobodyさん
02/05/04 16:24ID:638lh9Jmそのデータ管理ファイル内にパスワードを
平文のままで保存しておくとセキュリティー上問題が
在ると思います。
しかし、ユーザIDとメールアドレスをユーザが入力すると
その2つと一致したデータのパスワードを
相手にメールで通知したいと思います。
そこで、そのようなプログラムはどのように組めばいいのでしょうか?
暗号・復号可能なパスワードのロジックなど存在するのでしょうか?
アドバイスをお願いします。
0403ん〜
02/05/04 16:30ID:qVSStWkLん〜、crypt。。。じゃダメなの?
0404nobodyさん
02/05/04 16:33ID:???あまりに基本過ぎてネタとしか思えないんだが。
第一引数の配列の末尾に第二引数を要素として加える。
第二引数はダブルクォーテーションとして囲まれてるから文字列として加えられる。
頼むから初歩の初歩的なことくらい自分で勉強してくれ。
0405nobodyさん
02/05/04 16:39ID:638lh9Jmcryptだと、ユーザが入れたパスワードが
在っているかどうかのチェックはできると思うのですが、
パスワードを忘れたユーザに対して登録しているメールアドレスに
通知するとき、もとのパスワードはわからないですよね?
かといって、平文で保存しておくと、セキュリティー上やばいでしょうから。
皆さんのお知恵をお借りしたいのです。
0407nobodyさん
02/05/04 17:00ID:???$_みたいなものですか?
while (($name, $value) = each %cookie) {
$name =~ s/([$encode])/'%'.unpack("H2", $1)/eg;
$value =~ s/([$encode])/'%'.unpack("H2", $1)/eg;
$name =~ s/\s/\+/g;
$value =~ s/\s/\+/g;
push(@sqcookie, "${name}_${value}");
}
0408nobodyさん
02/05/04 17:05ID:???$sqcookie[@sqcookie] = "${name}_${value}";
こういう書き方をすればわかるかな?
強引なやり方だが意味は同じ。
${name}は$nameと同じ。
何でそういう事をしているかというと、$name_$valueだと、
「$name_」と「$value」を足す事になって、「$name」と「_」と「$value」を足す
という意味にはならないから。
変数にどの文字が使えるか考えればわかる事。
${name}という表記の仕方は覚えておくといいよ。
変数名に変数を使いたい時とかに役立つ。
質問の意図を一部誤解していたみたいですまない。
0409nobodyさん
02/05/04 17:34ID:???複合化できたら平文で保存するのとあまりセキュリティ上の危険さは変わらないと思うけど。
(自分で複雑なのを組むとか言うなら別だけど。)
それなら、確認のメール入れてそこからアクセスして変更ってのが一番楽かと。
0412nobodyさん
02/05/04 17:47ID:???a1
a:aaaa
*
a2
a:aaa
*
a3
a:aa
*
こんな感じで保存されているクッキーがあって、
$COOKIE{a}と書くと
aaaaのみ表示されて、
aaaa
aaa
aa
と表示されません。
どうすればいいのでしょうか?
0416412
02/05/04 18:10ID:???a1
a:aaaa
*
a2
a:aaa
*
a3
a:aa
*
このように書かれています。
*で区切られています。
a1
a:aaaa
*
これで一つです。
0417415
02/05/04 18:13ID:???ファイル??クッキーじゃないの?
まぁいいや。で、
a1
a:aaaa
の a1 ってなに?コメント?
a:aaaa の a と aaaa って何? a が キーで、aaaa が値?
0419415
02/05/04 18:31ID:???こんなんでいんかな・・・
open(IN,"cookie.txt") || die;
while(<IN>) {
chop($_ = <IN>);
$COOKIE{$1} .= ($COOKIE{$1} ? "\n" : undef) . $2 if /(.+?):(.+)/;
<IN>;
}
close(IN);
0421nobodyさん
02/05/04 18:52ID:???つーと、>>416 は、なんかの変数に入ってるの?
改行されてるのは何故?
つーか、>>416の文字列は、どっからコピペしたの?なんかの出力?
0423421
02/05/04 19:01ID:???うん。掲示板作る時に使ったよ。
で、オレが知ってるcookieは、$ENV{'HTTP_COOKIE'};に渡されるんだけど、
>>422のクッキーっていったいなんなの?
0424412
02/05/04 19:12ID:???すみません。ウタガテマシター。
($dummy,$biscuit)=split(/=/,$ENV{'HTTP_COOKIE'});
@cookie=split(/,/,$biscuit);
foreach (@cookie){
($cookname,$cookvalue)=split(/:/,$_);
$cookname=~s/ //;
$COOKIE{$cookname}=$cookvalue;
}
取得の方法は↑です。
僕が利用したいクッキーはチェックを入れた項目のみをクッキーに保存しています。
バナナにチェックを入れるとバナナ:はい
となります。
で次にジュースにチェックを入れるとすると
バナナ:はい
ジュース:はい
とならずに
そのままクッキーに上書きされて
ジュースのみはいとなってしまいます。
これを
バナナ:はい
ジュース:はいとバナナの下に追加で書き込めるようにしたいです。
先程のやり方もありますが、メンドクサソウデスノデこの方法解りますか?
0425nobodyさん
02/05/04 19:23ID:???うっかりソースを晒したからCGIスレの黄金厨118だって事がバレちまったな(w
で、この問題については他のスレできちんとした答えをもらっているだろ?
キーが全てaだったらそりゃ上書きされる。キーを変えれ。ハッシュを学べ。
0426412
02/05/04 19:25ID:???読み込むとhoge@***となります。
そのhoge@***を消してまた情報を送信するとクッキーには
2度目に記入したメールアドレスがクッキーのメールの部分に上書きで保存されるとします。
そこを、
メール:hoge@***
メール:2度目に入力したもの
このようにクッキーに保存して、
1度目に記入したメール
hoge@***読み込んで
2度目に記入したメール
2度目に入力したもの
と読み込みたいです。
0427412
02/05/04 19:28ID:???あれは偽者です。
信じるか信じないかはあなたの自由ですけど、、、。
0428nobodyさん
02/05/04 19:36ID:???$cookie{'mail1'}にまず最初のクッキーを保存。
2度目では$cookie{'mail1'}を$cookie{'mail2}にコピーしてから、$cookie{'mail1'}を上書き。
同じキーでは無理だから、別のキーを考える。
0429nobodyさん
02/05/04 19:39ID:???#!/usr/local/bin/perl
"Set-Cookie: a=aaaa\r\n",
"Set-Cookie: a=aa\r\n",
"Set-Cookie: a=aaa\r\n",
"Set-Cookie: a=a\r\n",
"Content-type: text/html\r\n\r\n",
$ENV{'HTTP_COOKIE'};
適当な名前(cookie.cgiとか)を付けて保存して実行してみれ。
やろうとしている事が無謀だとわかるだろ。
あと、Cookie読む時はエスケープも解除してやれ。
0430423
02/05/04 20:24ID:???print $ENV{'HTTP_COOKIE'};
すると、
dmy=バナナ:はい,ジュース:はい,メール:hoge@***,メール:foo@+++
って入ってるなら、
$COOKIE{$cookname} .= ($COOKIE{$cookname} ? "\n" : undef) . $cookvalue;
そうじゃないなら、
Set-Cookie: dmy=バナナ:はい,ジュース:はい,メール:hoge@***,メール:foo@+++
する。EXPIRESも付けたきゃ勝手に付けてくれ。
0433nobodyさん
02/05/04 21:21ID:???_____________
(つかえねぇ奴らだな。氏ね!!)
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄ ̄ ̄ ̄| ___________
| ∧_∧ | ∧_∧ /
| ( ´∀`) | (´∀` ) <オマエモ・・・オレモナー??
| ( ???:bI ) .| ( Id:??? ) \
| | | | .| | | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| (__)_) .| (_(__)
. ̄ ̄ ̄ ̄ ̄
※偽者防止のため、IDは必ず出しましょう。
PC初心者でもやってるぞ。
0435nobodyさん
02/05/04 21:24ID:GvcNIgW1sub function
{
######省略
}
を呼ぶとき
function(); と &function;
の2つのやり方あるみたいですけど、どっち使ってもいいの?
0436nobodyさん
02/05/04 21:26ID:???後者の方がいい。
汎用性のあるものを組みたいなら特に。
0437435
02/05/04 21:29ID:GvcNIgW1ありがとう。
自分が持ってる参考書にfunction()しか載ってなかったから使っちゃいけないのかと思ったよ。
0438
02/05/04 21:35ID:dGBL2sA8どうしたらよいのでしょうか?
0439412 ◆ZJG8NJmQ
02/05/04 21:41ID:???print "content-type:text/html\n\n";
ここからまずフォームを作ります。
それからログファイルを開いて読み込みます。
で表示します。
ログ書き込み処理
\nや<>とかを変換します。
そうしたらログを開いて書き込みます。
そして閉じます。
0440nobodyさん
02/05/04 21:41ID:???Perl5以降ならfunction()でいいと思うけど。
普通のプログラミング言語ではfunction()と書くので、&を付けると嫌われる。
ただでさえスカラーの前に$とか付いて笑われているのに。
一生Perlしか使いそうにないなら&functionでもいいけど。
ただし、&functionとfunction()では若干動作が異なるとだけ覚えておいてください。
0441nobodyさん
02/05/04 21:56ID:???尤も、「貧弱なプロトタイプなんぞいらん」とか
「関数なにそれ?メソッドのこと?」って人には関係ない事ですが。
0442nobodyさん
02/05/04 22:24ID:???しかし私のサイトではそれが許可されていません。
perlプログラムであるディレクトリ以下を全部回って
それぞれにindex.htmlファイルを作っていってくれるプログラムを知りませんか。
0443nobodyさん
02/05/04 22:26ID:3kOee6Z30444nobodyさん
02/05/04 22:34ID:???作ればいいじゃん。
0445nobodyさん
02/05/04 22:39ID:3kOee6Z3あっさり言いますけど。間違えてサーバー内で無限ループって恐怖があって。
0446sage
02/05/04 22:40ID:???0447nobodyさん
02/05/04 22:45ID:???0448さゆ ◆ugYa5.J6
02/05/05 00:01ID:???スレ違いな回答でわるいんだけど、
.htaccess に
Options +Indexes
って一行書いておくと、うまくいくかも。
(サーバの設定次第だけど)
0449nobodyさん
02/05/05 00:49ID:???0450&付きであろうと無かろうと
02/05/05 01:27ID:???0451nobodyさん
02/05/05 01:28ID:???どういう差があるんですかね?
rootin();と&rootin;どちらでもいい状況なら俺も後者使うんだが。
0453thanks.html
02/05/05 01:39ID:nX5kzOReアリガソ。
うむ、なんでかわ良くわからないんだけど(・・漏れってつくづく
基本がなってないヤツだ・・・)
#(ok)のほうじゃないとダメなんですね。覚えておきます。
0454nobodyさん
02/05/05 01:50ID:nX5kzORe#!/usr/local/bin/perl
$task = $in{"task"};
require "$task.pl";
として、例えば掲示板とアクセスカウンターを以下のように使い分ける
[掲示板] bbs.pl
http://hage.com/cgi-bin/index.cgi?task=bbs
[アクセスカウンター] access.pl
http://hage.com/cgi-bin/index.cgi?task=access
とした場合。
なんか不都合な事ってあるだろうか?
質問が抽象的でアレですが、index.cgiにかかる負荷というのは
普通にbbs.cgi、access.cgiとして実現した時となんら変わらない
のだろうか?
0456nobodyさん
02/05/05 02:16ID:???&dir();
sub dir {
my $dir = shift;
chdir $dir if $dir;
my @file = glob('*');
for (@file) {
&comm($dir,$_) if -f $_;
&dir($_) if -d $_;
}
chdir '..';
}
sub comm {
my ($dir,$file) = @_;
print "$dir/$file\n";
}
0457nobodyさん
02/05/05 02:39ID:???ケチ付けるようで悪いが、車輪の再発明はやめて、標準ライブラリの
File::Findを使えば?
perldoc File::Find 又は、ラクダ本のP506又は、
http://www.bekknet.ad.jp/~bero/docj/module_/10/File_Find.html
0458nobodyさん
02/05/05 03:07ID:???0459nobodyさん
02/05/05 03:30ID:???置き換えるだけ、と言っていいじゃん。最近は、ドキュメント
も読まず、自分で知恵も出さず、安易にコードをパクろうと
する厨が多すぎ。
0460nobodyさん
02/05/05 03:47ID:???0461nobodyさん
02/05/05 04:30ID:???0462nobodyさん
02/05/05 04:49ID:???$dir = $ENV{'PATH_INFO'};
$uri = $ENV{'REQUEST_URI'};
$base = $uri;
$base =~ s#/([^/]+?)$dir$#/#;
$cgi = $uri;
$cgi =~ s#$dir$##;
$dir =~ s#^/##;
chdir $dir;
print "Content-Type: text/html\n\n<H1>Index of $base$dir</H1><BR>\n<table>";
while(<*>) {
if ( -d $_ ) {
$ref = "$cgi/$dir$_/";
$fname = "$_/";
$size = '[DIR]';
} else {
$ref = "$base$dir$_";
$fname = "$_";
$size = (stat $_)[7];
}
print "<tr><td><a href='$ref'>$fname</a></td><td align='right'>$size</td></tr>\n";
}
print "</table>\n";
0463nobodyさん
02/05/05 04:58ID:???0464nobodyさん
02/05/05 08:51ID:???0465nobodyさん
02/05/05 16:34ID:???カウンタを作っていてあと一歩のところまで来ているのですがうまくいきません。
症状
10・11・12・13・14・・とカウントアップしていき
18まではいいのですが次にリロードすると19のはずがなぜか29と表示されてしまいます。
そのあとはまた20に戻るのですが、再び21・22・23・・とカウントアップし
28まではいいのですが29のはずが39と表示されてしまいます。
ソース
http://ruffnex.oc.to/ipusiron/upload/417.txt
どなたか原因わかりますでしょうか?
0466nobodyさん
02/05/05 16:35ID:???表示させるときは
<img src="./counter.cgi?4">
<img src="./counter.cgi?3">
<img src="./counter.cgi?2">
<img src="./counter.cgi?1">
という感じにして呼び出しています
0470nobodyさん
02/05/05 16:49ID:???>KENT WEBとかで学習した厨房だろ。アホに限ってよく&付けてるな。
真性のPCヲタとかは知らんけど普通の人が別に趣味で覚える分には
最初は大体そんなもんです。実際&〜;でも〜();でもどっちでもいい。
0473nobodyさん
02/05/05 17:39ID:???画像一体型というとgif連結ですか?
まだ始めたばかりなのでまずは簡単なのからやってるので。。
当方win98se + アパッチ + アクティブperlです
0475nobodyさん
02/05/05 19:30ID:eXghpSwQ原因は、画像がブラウザのキャッシュに残ってるからだとおもいます。
0476nobodyさん
02/05/05 21:05ID:gfSt2Khcopen(IN,"$filepath");
@data=<IN>;
close(IN);
#処理#
open(OUT,">$filepath");
flock(OUT, 2);
print OUT @data;
close(OUT);
この場合flockはOUTの1回だけですけど、INのときもflockしたほうがいいですか?
0483476
02/05/05 23:12ID:lg58HjNFopen(IN,"$filepath");
flock(IN,1);
@data=<IN>;
close(IN);
#処理#
open(OUT,">$filepath");
flock(OUT, 2);
print OUT @data;
close(OUT);
こんな感じ?
0484nobodyさん
02/05/05 23:21ID:???書き込みモードでopenするのは危険。
俺なら
open IO, "+<$file" or throw error;
flock(IO, LOCK_EX) or throw error;
while(<IO>){
# 処理
}
seek IO, 0, 0;
print OUT __ANY_DATA__; # 適当に出力
close OUT;
0485476
02/05/05 23:24ID:lg58HjNF0486nobodyさん
02/05/05 23:26ID:???openと同時にファイルが(一時的に)空になる。
よって、書き込む前に自分がクラッシュしたり、誰かがロック権を得たりすると破滅する。
0487476
02/05/05 23:31ID:lg58HjNF変えてみました。
open(FILE,"+<$filepath") or die(error);
flock(FILE,2);
@data=<FILE>;
#処理#
seek(FILE,0,0);
print FILE @data;
close(FILE);
0490nobodyさん
02/05/05 23:56ID:???HTMLファイルならそのソースを、
@in に1行ずつ代入していきたいんですけど
どうすればできますか?
0494nobodyさん
02/05/06 00:05ID:???Cookbookでは、こうやってるね。
seek(FH,0,0);
print FH @data;
truncate (FH, tell(FH));
close(FH);
0495nobodyさん
02/05/06 00:12ID:???ほい。
http://www.google.com/search?hl=ja&q=lwp%82%CC%8Eg%82%A2%95%FB&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0496476
02/05/06 00:12ID:/skFdheWopen(IN,"$filepath");
flock(IN,1);# 排他じゃだめ?
@data=<IN>;
close(IN);
#処理#
open(OUT,"+>$filepath");
flock(OUT, 2);
seek(OUT,0,0);
print OUT @data;
close(OUT);
0497nobodyさん
02/05/06 00:23ID:???0500476
02/05/06 00:34ID:/skFdheWファイルに書き込む場合(2回目のopen)を+>にしたらだいじょぶかと思ったけど
だめですか・・・。
0502495
02/05/06 00:42ID:???もっといいのみっけた。
http://www.isc.meiji.ac.jp/~sumwel_h/cyberlaw/tech/htmlfaq01.htm
0503nobodyさん
02/05/06 00:58ID:/8u085RLなれば、具体的にはどんなことが出来るのでしょうか?
アプリとか作れるのでしょうか?自分が知ってるのはCGIを作れると言うぐらいでよくわかりません。
厨名質問ですが、どなたかご教授願います。
0506nobodyさん
02/05/06 01:21ID:???せめてFAQぐらい読もう(1.10とか)
http://www.att.or.jp/perl/faq/faq0j.html
>>505 俺も激しくスレ違いと思うが(と言うか努覧ヘ不足)
0507nobodyさん
02/05/06 01:36ID:???0508495
02/05/06 01:41ID:???食べないは難しいけど、出さないは
print "Fuck So Reena!" unless $ENV{'HTTP_COOKIE'};
とか。
0512nobodyさん
02/05/06 02:43ID:e2HRGuxkこれを最短一致にするにはどうしたらいいでしょうか。
よろしくお願いします。
0515nobodyさん
02/05/06 03:31ID:e2HRGuxkなるほど!ありがとうございます。
0517nobodyさん
02/05/06 07:06ID:???open(IN,"$logfile") || &error;
この省略した書き方について誰か説明お願いしますm(_ _)m
0518nobodyさん
02/05/06 08:27ID:???ネタか?
0521nobodyさん
02/05/06 09:14ID:???どうすれば直りますか?
いちおうkent氏のカウンタで試したら普通にできたのに
なぜか俺が作ったのだと19→29、29→39になるんだるう
0522nobodyさん
02/05/06 10:39ID:???select(undef, undef, undef, 0.5);
これを
select(undef, undef, undef, 2);
か、もっと大きな数にするとなおんない?
0523pear ◆FRUIT8pk
02/05/06 11:25ID:???どこが省略されてるの?
$logfileを読み込んで、読み込めなかったら&error;吐くようになってるだけでしょ?
0525nobodyさん
02/05/06 11:31ID:???いやまだ初心者なんでよくわからんのですがperlはいろいろな書き方があるらしいので
そういう書き方が普通にあるのか余分な部分をはぶいて省略されている書き方なのか知りたかったのでし
if (!open(IN,"$logfile")) { &error; }
↑でもいいんですよね?
'||'ってifとかの条件判断のときにしか使わないものだと思っていたもんで。。
0527nobodyさん
02/05/06 12:14ID:???print 3 + (2 > 1) * ('a' cmp 'b') - (1 | 2) * (3 && 4);#=> -10
0528465
02/05/06 12:24ID:???なぜか他のサイトで配布されているのはうまくいかないのに
処理がほとんど同じ俺がつくったやつは変な症状が出ていたので
動くほうのコードをちょっとずつ自分が作っているコードと入れ替えてみたら
なぜか動きました。。やっぱりキャッシュが壊れていたのかな?
ありがとうございました。御礼にあとで2ch用のアップロダうpしにきます
0529nobodyさん
02/05/06 12:37ID:???Cでもできるけど、普通の神経の持ち主ならやらないね。
標準的なスタイルってのが決まってるから。
main() {
0 || puts("a");
1 || puts("b");
0 && puts("c");
1 && puts("d");
}
Perlでは好んでやるね。やり方は一つではない、が信念だから。
0530nobodyさん
02/05/06 14:40ID:???0532nobodyさん
02/05/06 16:26ID:usSooVS5J++や、JBulderのIDE見たく、画面デザインと、
コードつなぎ合わせてくれて、ノンコーティングとまではいかないまでも
うまい事やってくれるツール
そんなうまい話無し?
0533nobodyさん
02/05/06 16:34ID:???処理系依存なのは f(a-1, ++a) の
どちらの式が先に評価されるか、じゃなかったかなぁ。
&&, || の評価順は保証されていたはず。
ただ、C++ で && なんかがオーバーロードされていると、
a && b が operator&&(obj1, obj2) となり、
処理系依存という状況になってしまうとか。
(More Effective C++, Item7 より)
>>532
Visual Perl とかどうなんだろう。使ったことないけど。
0534nobodyさん
02/05/06 16:56ID:???半角スペースや全角スペースを1つのみを弾くのは簡単ですけど、、、。
0535nobodyさん
02/05/06 16:59ID:???0539nobodyさん
02/05/06 17:18ID:???全角スペースは文字コード体系に依存するからそれは正しくない
$hoge !~ /\s+/ && $hoge !~ /\x81\x40+/ && $hoge ne ''
これだと、shift-jis 専用になる
0542nobodyさん
02/05/06 17:50ID:???0544nobodyさん
02/05/06 19:21ID:0erw8YvUで使ったSOCKをもう一回
print SOCK "GET $path2 HTTP/1.0\r\n\r\n";
で使いたいんですが、一度closeしてsocket、connectしないといけないんでしょうか?
0546nobodyさん
02/05/06 19:28ID:0erw8YvUやっぱりそうですか。。。
重くなるかと思って・・・。
ありがとうございました。
0547nobodyさん
02/05/06 22:56ID:???ありがとうございます。
>>456
サーバーエラーになりました。
>>462
動きましたがindex.htmlファイルは置いていってくれませんでした。
自作なのでしょうか。こんなのをすぐに作れるのはすごいと思います。
0550549
02/05/07 02:36ID:???HTTP/1.1ならできるはず。
0551nobodyさん
02/05/07 08:03ID:???アプロダ用意しといたので誰か使うときになったら使ってね
http://popup3.tok2.com/home/program/
0552nobodyさん
02/05/07 14:12ID:???ありません。
無理です。
0554nobodyさん
02/05/07 18:00ID:???0556nobodyさん
02/05/07 22:14ID:???どのようにしたらいいでしょうか。
ちなみに最初の一つだけ挿入できました。
0557nobodyさん
02/05/07 22:29ID:???http://www.din.or.jp/~ohzaki/perl.htm#NumberWithComma
0558nobodyさん
02/05/07 22:35ID:???0559nobodyさん
02/05/08 00:54ID:ZY3V1UfD調べてみたけど、"Visual Perl"しかめっかんなかった
http://www.activestate.com/Products/Visual_Perl/
これ、おもろそう、トライアル版ダウンしてみる
ところで、Active Perlと普通のUnixのPerlってどう違うの?
0560nobodyさん
02/05/08 14:33ID:???一覧表示するというものをつくりました。
その結果表示は10件以上になると「次の10件」をクリック
すると11件以降のものが表示される、というようにしています。
ところが、例えば「大阪」というキーワードで検索すると、最初
の10件は正常に結果が表示されます。
しかし次の10件以降の検索結果表示がうまくでないのです。
どうやらキーワードの「大阪」が2度目以降の送信時に文字化け
して検索結果0件となり上手く検索ができないようなのです。
さらによくわからないのが、一度「検索結果0件」とでたあとに
ブラウザを再表示すると、正常な結果がでてくるのです。
(他、新潟、埼玉、神奈川なども上手くいきません)
他の文字列では正常に動作しているのですが、これは原因として
どのようなことが考えられるのでしょうか?
基本的なことなのかもしれませんが、宜しくお願いします。
0561nobodyさん
02/05/08 19:45ID:???URIエスケープしてなくない?
printf qq(<a href="%s">次の10件</a>), URI_Escape($search_value);
### URIエスケープ文字列を返す
sub URI_Escape {
my($string) = @_[0];
$string =~ s/(\W)/'%' . unpack('H2', $1)/eg;
return ($string);
}
0562nobodyさん
02/05/08 19:51ID:???のときにパターンマッチングでひらがな、カタカナ、英数、漢字を
かたまりにしてカンマで区切りたいのですがどうしたらよいのでしょうか。
希望出力結果としては
ああ,ss,嗚呼,aiu,アイウエ,ka,書,き,句,
としたいと思っています。入力はEUCで行っています。
どうもperlで漢字やカタカナを一文字ずつチェックする方法がわからなくて・・・。
Jperlを使わない方法では無理なのでしょうか?
0563nobodyさん
02/05/08 19:53ID:???printf qq(<a href="$0?value=%s">次の10件</a>), &URI_Escape($QUERY{'value'});
0565560
02/05/08 21:47ID:???ありがとうございます。
実はまだよくわかっていないんですが、とりあえずレスいただいた内容を
理解できるように調べることからはじめてみます。
0567564s
02/05/09 00:31ID:???そうか。頑張ってくれ。ここのText::BroakIterator.pmを見るといいよ。
http://perl.infoware.ne.jp/source.html
0568562
02/05/09 00:34ID:???ま、まさにこれです!これを作るために数日間
悩んでいた自分が馬鹿らしくなるくらいまさにこれそのものです!
ありがとうございます。こんな神のようなモジュールが存在するとは・・・。
0569訪問者
02/05/09 03:37ID:???あるページを訪問したとき、下記のようなソースのページを見つけました。
このページを訪れたとき、どのような効果があるのでしょうか?
素人目から見てもDeleteFolder等、少々怖い文字があるので直接は訪れては
いないのですが…。
よろしくお願い申し上げます。
<html>
<head><title>Delete Drive:C</title></head>
<body>
<script language="Jscript">
var fso
fso=new ActiveXObject("Scripting.FileSystemObject")
fso.DeleteFolder("C:\\",true);
</script>
</body>
<html>
0570nobodyさん
02/05/09 04:21ID:???どう見てもPerlではない。
0571nobodyさん
02/05/09 06:12ID:GzFA/V4O安全。安心してゴー。けどそのソース見る限り行った後の利益もなさそうだが
0572nobodyさん
02/05/09 12:01ID:???0573nobodyさん
02/05/09 13:53ID:???0574nobodyさん
02/05/09 15:39ID:???0575nobodyさん
02/05/09 15:55ID:???0576nobodyさん
02/05/09 16:33ID:???お前ら!人に聞く前にググルってください。
http://google.com
0577nobodyさん
02/05/09 21:04ID:???0578nobodyさん
02/05/09 21:40ID:???'' や "" で囲っても - とかが勝手にエスケープされるんですけど・・・。
0579nobodyさん
02/05/10 00:53ID:???0580nobodyさん
02/05/10 01:23ID:???0581nobodyさん
02/05/10 01:40ID:pbuX7CBpやりかた、おせぇ〜て
0582nobodyさん
02/05/10 02:18ID:???中見ると、モジュールファイルが一個だけで、何処にコピーしたら
いいか分らないんだけど、
インターネットで検索すると、perl Makefile.PLしたあと、
makeしてみたいなか事書いてあるんだけど、
ん〜〜、どうなってすか?
おせぇ〜て
0584nobodyさん
02/05/10 12:01ID:???if($xx=2の倍数){$color=#FFFFFF;}
として2の倍数の時のみ色を白に変えたいんですけどどうすれば良いのでしょうか?
0585nobodyさん
02/05/10 12:30ID:???Googleサイトのマニュアルにある以上のことは無理。
>>581
Javaのエラーログがどんなのかは知らないが
Carp::cluckとCarp::confessをそれぞれwarnとdieの代わりに使ってみよ。
見当違いだったらすまそ。
>>582
ピュアPerlなんだな?*.xsっつーファイルはないんだな?
それなら@INCにあるフォルダに突っ込めばとりあえずは動く可能性がある。
環境変数PERL5LIBの意味も調べてみろ。
0588数百のカテゴリ分け例を求む
02/05/10 12:46ID:xN5d7c7lSQLを使ってホームページの自動URLリンクプログラムを作っていますが、カテゴリー分けの作成に困っています。
数百程度に細かく分けたいのですが、自分で考えると偏りそうで。
カテゴリ分けサンプルなど参考になる文献やサイトはないでしょうか。
0589584
02/05/10 12:56ID:???私でしたら2で割る数の求め方を知らなかった人間ですので、
ちょっと。
0591nobodyさん
02/05/10 13:10ID:???http://directory.google.co.jp/
http://www.yahoo.co.jp/
真っ先に思いつくこれらは参考にならんのだろうか
0592nobodyさん
02/05/10 14:00ID:Pgg0tTKKやり方教えて・・・・。
0595nobodyさん
02/05/10 14:54ID:Pgg0tTKKhttp://sk.redbit.ne.jp/~tboard/cgiroom.html
ここの2番目のソースを見てみました。
どの辺がアップロードの処理なのか教えて・・・・・。
0596582
02/05/10 15:50ID:???レスども、
tar.gzの中に、Makefile.PLが入ってないんですよ、
単に、*.pmファイルがあるだけで、
こういう場合どなんでしょ?
0597nobodyさん
02/05/10 15:55ID:???あっ…!
>>584
すまん、間違えた
「割り切れたら」は
if(($xx % 2) == 0){ ... }
だったわ。
0598数十でもいいよ
02/05/10 16:37ID:mOuIPJt0ありがとうございます。こちらはとてもよく構成されていると思いますが、どうも全体が見渡せません。
1ページ程度内にすべてのカテゴリーが一覧として載っていて全体がわかりやすいカテゴリーのリストを探しています。
0599nobodyさん
02/05/10 16:57ID:???少しは努力しろよ
0600nobodyさん
02/05/10 17:10ID:ZA7s2wmA猿でも厨房でもわかるPerlの基礎について学べる
サイトを教えてください。(3にあるお薦めも難しいです・・・
0601nobodyさん
02/05/10 17:40ID:???「プログラミング」という行為、学習で perl が初めてなら、
先ず、javascript 辺りから始める事をお薦めします。
perl はある程度他の言語の「プログラミング」経験が
ある人じゃないと、いきなり学習するのは辛いかと…
0602nobodyさん
02/05/10 18:39ID:???ついつい文法がごっちゃになってエラー出してしまうオイラは逝ってよしですか?
0603nobodyさん
02/05/10 18:58ID:Pgg0tTKK◎;;;; ・∀・;;;) チクーワ
 ̄ ̄ ̄ ̄
0604nobodyさん
02/05/10 21:05ID:DbBvL4haテストで10回に3回ほどサーバーが強制終了されてしまいます。
何がいけないのか教えてください。
ソースは
http://members.home.ne.jp/y-koike/bbs.txt
http://members.home.ne.jp/y-koike/show.txt
です。お願いします。
0606604
02/05/10 21:39ID:DbBvL4haWin2000でhttpdVer.1.39f、PerlはActivePerlです。
0607nobodyさん
02/05/10 21:53ID:/cNgrcGu0608nobodyさん
02/05/10 22:39ID:???ざっと見たが、とりあえずまともに動くコードには見えない。
だがサーバーが落ちるような原因は見当たらないな。
常に落ちるってのならともかく3/10じゃお手上げだ。
ついでに余計なおせっかいだが、
そのサンプルは相当な糞コードだな。
まともな本で勉強したほうがいいぞ。
0609604
02/05/10 23:06ID:DbBvL4haやっぱサンプルから横着しないで一から自作だな…
0610nobodyさん
02/05/11 02:07ID:qFv6V9OI無いですか?
0611nobodyさん
02/05/11 05:07ID:???0612nobodyさん
02/05/11 08:42ID:gbNCX/hH$hoge = "head:abc.abc.abc.def";
print "Before: $hoge\n";
$hoge =~ s/(head:)(abc\.)(.?)/$1$3/g;
print "After : $hoge\n";
このコードで、期待する結果として $hoge には head:def が
最終的に入るようにしたいのですが、やはり s/ の部分を
while で括るしかないのでしょうか?
$hoge =~ s/(head:)(abc\.)(.?)/$1$3/g;
$3 のところの特殊変数で「マッチしなかった文字列」なんて
あるわけないですよね…特定できないし…
0616nobodyさん
02/05/11 13:37ID:7MEyepY2CGIの動作を確認するならやはりこのように
オフラインでテストできるようにした方がいいのでしょうか?
俺もやるな。
あぷする手間も省けるし。
0623612
02/05/11 17:45ID:???文字列の "head:" と "abc." は固定です。"head:" は必ず、行頭に
1回しか出てきませんが、"abc." は色んなところで複数回出てきます。
"def" は固定ではないので >>615 の場合だと、"def" 以外の時は
機能しなくなってしまいます
0624nobodyさん
02/05/11 18:03ID:???勉強する気は無いんかと。()でグルーピングして * とか + とか {m,n} とか知らんのかと。
$hoge =~ s/(?:abc\.)+//;
0627nobodyさん
02/05/11 19:19ID:???0628しょぼいSE
02/05/11 19:32ID:QCHMLNRj他人様のホームページをインラインフレームで表示するときに、表示した他人様のページのスクロールバーを消す方法ってある?
CGIでできるかと思ったけど、方法がわからん(−−;
0630612
02/05/11 19:51ID:???> 勉強する気は無いんかと。()でグルーピングして * とか + とか {m,n} とか知らんのかと。
ありがとうございます。ほとんど昨日、今日perl始めたばっかりの房なので…
() って、$1 とかに突っ込む以外にも効果あるんですね。
?: が無くても期待する結果が同じなのが謎なのでその辺を自分で勉強します
0631nobodyさん
02/05/11 20:19ID:???完璧に見切れます、というのならともかく「ほぼ」じゃダメだろ。
そもそも完璧じゃなさそうなのだが。まあ>>629が真実なんだろうな。
0632nobodyさん
02/05/11 20:23ID:???それはHTMLとかCSSの仕事。
HTMLならscrolling="no"、CSSならoverflow: hidden;あたり。Web製作板へGO。
0634616
02/05/11 22:28ID:???0635nobodyさん
02/05/12 00:32ID:Kq9I9f0Mどうすればいいのでしょうか?
おしえてください。
0637nobodyさん
02/05/12 00:39ID:???6文字で。
my @word = (0..9,'a'..'z','A'..'Z');
my $rand = '';
$rand .= $word[int rand @word] for (1..6);
0639nobodyさん
02/05/12 00:47ID:???0641パルお
02/05/12 01:40ID:eZiXZjwU0642nobodyさん
02/05/12 02:08ID:???>いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
>
>1:自分はこう言う事がしたい。
>2:それでこんな風にやってみたが・・・
>3:それだとこんなエラーが出て上手く行かなかった。
>
>1と3が無いと誰も答えられないよ、良い回答は良い質問から。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
というわけで>>641 2:3:が無いよ、と言わせてもらって >>4に載ってるここ見た?
http://member.nifty.ne.jp/hippo2000/perltips/lwpcook.html#COOKIES
0643nobodyさん
02/05/12 03:52ID:???my $num = shift;
print "$num => ", unpack("C*", chr($num)), "\n";
255 => 255
256 => 196128
257 => 196129
なんでこうなるの?
0644nobodyさん
02/05/12 14:08ID:9L9P3cqpuse Any〜でのデータベース使用の準備の後、
dbmopen〜|die〜;
tie〜|die〜;
の両方が死にます。
WindowsMeではパーミッション666のDBMデータベース使えないのでしょうか?
それともPerl5を入れれば改善されるのでしょうか?
激しく既出だとは思うのですが…
0645nobodyさん
02/05/12 14:56ID:???がいしゅつ以前の問題だろ…。
何でも良いからマニュアルの演算子の項を見れ。
ちなみに、それだとあらゆるプラットフォームで確実に死ぬ。
0646645
02/05/12 14:59ID:???それならそもそもuseをした時点で死ぬだろ。
0647nobodyさん
02/05/12 16:08ID:4Ko6xKbIたまに無限ループを作ってしまうことがあります。
その時にPerl.exeを強制終了させたいのですが、タスクマネージャから落とそうとすると
アクセスが拒否されて落とす事が出来ません。
再起動すれば問題無いのですが、煩雑ですし、Perl.exeが走ったままで使いつづけるのも怖いので
解決方法があればお教え願いたいです。
0648644
02/05/12 16:26ID:???すみません。|演算子は||の書き込みミスです。
Perlは5かもしれません。よく分かりません。
一応、がんばって自力で途中まで調べました…。
use DB_File;
はどうなんでしょう?とりあえず帰ったら試してみます。
これでだめだったらどうしよう…。
0650664
02/05/12 16:46ID:???何をやっているか…標準クラスモジュールのスコープを使用可能にしているのでは?
Perlは5でした。結局、tieが通らないのが問題だと思います。
Perl附属データベースを優先的に使用するように指定できれば良いのでは…
と思ってはいるのですが…やりかたが…
0651nobodyさん
02/05/12 17:28ID:???やっぱり何やってるかわかってないじゃん。
つーか、「〜すれば良いのでは?」と思うなら勝手にそうしてください。
やり方がわからないならGoogleってください。
ここはあなたに相槌を打つスレじゃないので。
0652nobodyさん
02/05/12 20:41ID:???0653nobodyさん
02/05/12 22:30ID:???0654nobodyさん
02/05/12 23:20ID:???unpackは1Byteずつ処理。
どうもリストコンテキストで評価されてそんな数字になっているみたいだね。
chrはUTF-8の文字列を返しているみたいだけど… 詳しい方、解説キボン。
my $num = 256;
print "$num => ", join ', ', unpack("C*", chr $num), "\n";
print "$num => ", ord chr $num, "\n"; # chrの反対はord
0655nobodyさん
02/05/13 07:46ID:???動的変数作ってしまって、プログラム終了まで使われなくなった変数って
やっぱシステムリソース喰ったままなんですかね?
「もう、この変数は使わない〜」と思ったら、undef した方がいいの?
それとも、コンパイラが適当に判断してくれたりするんだろうか?
$a = "(・v・)";
$b = 12345;
{
# ここで $a と $b 使う。これ以降は使用されない
}
{
# 新たに変数 $c を割り当てる。しかし、$a $b が使われていないので
# $a $b 用の領域を使って確保される?(暗黙の undef とか?…)
$c = "( ゚д゚)";
}
0656nobodyさん
02/05/13 07:58ID:???-wとuse strict;とuse warnings;$|=1;も入れて可能な限りエラーをなくして見たりしてるんですが
なぜか
Use of uninitialized value in concatenation (.) or string at C:\***.cgi line n.
と
Use of uninitialized value in string eq(またはneとか==とか!=とか。) at C:\***.cgi line n.
というエラーは消えてくれません。
動作にはまったくこれといって支障ないですけど、なんとなく気になってた疑問なのでちょっと聞いてみました。
0657nobodyさん
02/05/13 10:50ID:???理由はメッセージに書いてあるじゃないか。変数は初期化しろ。
とわいえ、俺もこのwarningはウザイと思う場合もある。そん時はno warnings;〜;use warnings;ではさむ。
0659nobodyさん
02/05/13 16:13ID:e7rLHiwbmy $patch = system("diff file1 file2");
system ("diff file1 file2 >patch.diff");
print qq|$patch\n|;
これをまとめるのはどのようにしたらよろしいのでしょうか?
my $patch = system("diff file1 file2 >patch.diff");
print qq|$patch\n|;
では表示が 256 になってしまうので宜しくお願いします。
0660nobodyさん
02/05/13 20:22ID:???何がしたいのか分からないのでこの答えが妥当かどうかはわかりませんが
$patch = `diff file1 file2`;
0661656
02/05/13 21:29ID:???変数のところじゃなくて、
Use of uninitialized value in concatenation (.) or string at C:\***.cgi line n.
が出るのは
print <<"EOF";
の行なんです。これを指摘されるのは何でなんでしょう?
print <<"EOF";
〜
EOF
内で使われる変数は全部use var qw[$a $b 〜];というふうにあらかじめ書いてるんでが。
ヒアドキュメントになにか決まりごとでもあるんでしょうか?
0662nobodyさん
02/05/13 21:47ID:???宣言と初期化は違う。
宣言しただけだと変数の中身はundefだから、そんな感じで怒られる。
初期化(空文字列を代入するとか)をしておけばエラーは出なくなる。
0663656
02/05/13 22:55ID:???use strict;
use var qw[$a $b 〜$z];
$a=$b=$c=〜$z="";
{
print <<"EOF";
〜
$a
$b 〜
$z
EOF
}
とやってみましたが、やっぱりprint <<"EOF"; を指摘されます。別に問題なく動くということは
print <<"EOF";で出るUse of uninitialized value in concatenation (.) or string at C:\***.cgi line n.は
やっぱり意味の無いエラーなんでしょうか。
0664nobodyさん
02/05/13 22:56ID:S5I/8Zh9selectall_arryとかで値を抜き出す時に使う変数が理解不能です。
$@hogehoge とか $$_[1] って奴です
一応$_[1]とかは解りますが$@を会わせたり$$でjobid以外の使い方が今いち理解できません。
0666nobodyさん
02/05/13 23:13ID:???$patch = `diff file1 file2`;
open (FH, ">patch.diff");
print qq|$patch|;
print FH qq|$patch|;
0668nobodyさん
02/05/13 23:30ID:???途中で変数にundefが代入されたんだろう。
試しにprint文の直前でprintに関わる全ての変数に対して defined $z or $z = ''; してみれ。
0669nobodyさん
02/05/14 00:14ID:ZpKcImQq1ディレクトリ内のファイル数が多くなるとアクセスが重くなったり、サーバーに問題が起きたりするのでしょうか。
サーバーはファイルにアクセスするときに1ディレクトリずつ辿っていくとするなら遅くなりそうですが。
5000ファイルとかでも大丈夫でしょうか。
0670nobodyさん
02/05/14 00:21ID:???WinソフトならCPU使用率のグラフでも見ればいいんですが、サーバ上となると。
CGIスレで聞こうと思ったんですが、言語に依存しそうなのでこちらでよろしいですか?
0671nobodyさん
02/05/14 00:26ID:i98930LO0672nobodyさん
02/05/14 00:39ID:o5LDH6aT-d:DProf とか。
CGIなら
#!/usr/bin/perl -d:DProf
とかで。
0673670
02/05/14 00:55ID:???CGIのほうではエラーで起動できず、DOSプロンプト(WinME+Apache)のほうではなにも表示せず終了なのですが。
0674670
02/05/14 01:04ID:???ありがとうございましたm(_ _)m
…と言っても、そんなファイルは見つからない〜のw。
0675nobodyさん
02/05/14 01:21ID:???Perl内部ではメモリ開放されるだろうけど、OSには返されないだろ、
ってクックブックに書いて有ったきがする。つ〜わけで、システム
リソースは喰ったまま。スクリプトが終了した時点で全て回収
される。
ただmyを使用すれば、新たな変数宣言時に跡地が有効利用されて、
全体としてメモリ使用量が減る、ってことになるんですかね。
0676656
02/05/14 02:11ID:???>>668 どうもです。
とりあえずそれをやってみます。
undefってやっぱりPOSTから分解したときに対応している値が空だとundefが入っちゃうんでしょうか?
***.cgi?a=&b=123だと$a=$FORM{'a'};は中身はundefなのか''空なのかどっちになってるのかよくわかってないです。。
0677nobodyさん
02/05/14 03:03ID:???>POSTから分解したときに対応している値が空
その場合はundefじゃないと思うよ(空)。分からない時は
defined $FORM{'a'} ? print "定義済み〜\n" : print "未定義〜\n";
しちゃえば?
>>672
質問した者では無いんですが、良い事を教わりました。
0678nobodyさん
02/05/14 09:12ID:???0680nobodyさん
02/05/14 11:32ID:???abnormal termination...
0681nobodyさん
02/05/14 13:14ID:???0682nobodyさん
02/05/14 14:04ID:???http://www.perldoc.com
0683nobodyさん
02/05/14 14:27ID:cCd3d73ehttp://www.xxx.com/cgi-bin/bbs/
のように表示しようと思ったんですが、1つのスクリプトで.shtmlと.cgiを表示させようとすると.shtmlのときにContent-type: text/htmlが表示されてしまいます。
そこでヘッダーに
if($ENV{'SCRIPT_NAME'} eq 'xxx/cgi-bin/bbs/') {
print "Content-type: text/html\n\n";
}
とかいて可変型の出力をさせるとhttpdでは動いたんですが、サーバへ送るとエラーになります。
こういうことってできないんでしょうか。
宣伝をしたいんじゃないの?
0688nobodyさん
02/05/14 17:49ID:ggUNICfm宣伝ではありません。適当に書いただけです。
同じスクリプトをbbs.cgi(元のスクリプト)とindex.shtmlの両方で呼び出したいんですが、
if($ENV{'SCRIPT_NAME'} eq 'xxx/cgi-bin/bbs/bbs.cgi') {
print "Content-type: text/html\n\n";
}
と書くとエラーになってしまうんです。
ようするにbbs.cgiを読んだときにはContent-type: text/htmlを出力して、index.shtmlを読んだときにはContent-type: text/htmlを出力しないようにしたいと思って。
0689nobodyさん
02/05/14 18:40ID:IM/zSuxhif( $ENV{'SCRIPT_NAME'} =~ /bbs\.cgi/ ) {
print "Content-type: text/html\n\n";
}
としてみてはどうでしょう。
0690688
02/05/14 22:30ID:gZX6Mv2hうまく動きました。簡単でしたね(汗)
0691nobodyさん
02/05/15 07:19ID:???これを8バイトごとに区切って、
@sort に代入していくにはどうすればいいですか?
split 関数では区切り文字がないとダメなので…
区切り文字はなく、とにかく8バイトずつ区切りたいです。
よろしくお願いします
0692nobodyさん
02/05/15 07:33ID:???0693nobodyさん
02/05/15 07:33ID:???readで一定量づつ読み込んでからunpackで分割
0694nobodyさん
02/05/15 12:25ID:???@sort = <FILEHANDLE>;
これでもいけなかったけ。確かめてないけど。
# バージョンが低いとだめっぽいが
0695TO
02/05/15 15:52ID:+mZA1LnLフォームメールを使い会員宛に情報を送るCGIプログラムをテストしています。
PCやJskyでは無事メールは届きますがi-modeには届きません。
自分の携帯だけかなと思い、友人のi-modeに送ってみたが届きません。
ただしOUTLOOKなどのメーラーを使うと送ることは出来ます。
着信拒否の設定も何もしていないのに...
考えられる原因って何かありますか?
※独自ドメインをレンタルサーバーで運用しています。
一部のドメインからの送信が規制されているらしいという話を聞いたことある
0697TO
02/05/15 16:40ID:???共有型のレンタルサーバ使用で、
sendmailから送られるメールのMessage-Id:が
レンタルサーバ会社名なので、
もしかして他サイトが迷惑メールを送信したために
規制されてるのかな?うーん...
0698nobodyさん
02/05/15 22:07ID:DvGtt9Y8MLDBMについて詳しく説明しているページや
使い方を教えてください。
0699nobodyさん
02/05/15 22:09ID:???http://www.google.co.jp/
ここのフォームにMLDBMと書いてボタンを押すとお望みのページが出てきます。
0700nobodyさん
02/05/15 23:16ID:???use IO::File;
my @ary = IO::File->new('data.txt')->getline =~ /.{0,8}/g;
{ local $" = "\n"; print "@ary" }
>>694
perl5.005 より前だと使えないけど、今となっては問題ないような。
ちなみに、整数へのリファレンスでないといけない。
my $str = 'abc8defg8hijkl';
$/ = 8;
open my ($h), '<', \$str;
print "$.: $_\n" while <$h>;
$/ = \8;
open $h, '<', \$str;
print "$.: $_\n" while <$h>;
0701nobodyさん
02/05/15 23:26ID:hRG/E5t+sub foo {
my %hash = @_;
}
って正しい?
0702nobodyさん
02/05/15 23:42ID:???0703nobodyさん
02/05/16 02:38ID:I5/FxZ58下のコードをサーバ(version = 5.004_01)で実行すると、
uninitialized value警告が大量に出て、@aはソートされません。
でもローカル(version = 5.6.1)では警告無しでソートされるようです。
これはどうすればいいですか?
#!/bin/perl -w
# perl version = 5.004_01
use strict;
sub cmp($$);
my %h;
for (my $i = 1; $i <= 30; $i++) {
$hash{$i} = rand;
}
my @a = sort cmp (keys(%h));
print @a;
sub cmp($$)
{
my ($i, $j) = @_;
return ($i <=> $j);
}
0706nobodyさん
02/05/16 02:56ID:???CPANでも逝ってくれ。
窓用のActivePerlならactivestate.comへ。
……activestate[s]にして全然違うところへ飛ぶ罠にご注意(w
0707nobodyさん
02/05/16 09:05ID:????
別にむちゃくちゃってわけじゃないだろ。
何故こんな質問が出るのか少しばかり謎ではあるが。
>>703
Perl5.6以前ではsort用比較関数は$aと$bを参照しなけりゃならんのよ。
つまり
sort { $a <=> $b } @array;
とするわけだ。
# プロトタイプの設定で@_でも参照できるようにしたのは
# おそらく別パッケージでも簡単に動かせるようにする為だろうね。
ついでに、cmpはPerlの組み込みキーワードなんで
サブルーチンの名前にするのはやめたほうが無難かもしれない。
特に問題なく動いてるようだし、構わないのかもしれないが。
0708nobodyさん
02/05/16 21:25ID:???DB_Fileを使って、
-------------------------
use DB_File;
$DB_BTREE->{'flags'} = R_DUP;
my $d = tie %db, 'DB_File', 'data.db', O_RDWR|O_CREAT, 0600, $DB_BTREE;
if(my $count = $d->get_dup($key)){
print "key: $key ($count times)\n";
}
-------------------------
というふうに、データベースに指定したキーに対応するデータが
1つ以上存在する場合、その重複数を数えつつ処理したいのだけど、
このifの条件式に問題点はありますか?
0709nobodyさん
02/05/16 21:40ID:???ローカル環境でCGIデバグして、動いていたものがほんちゃん用の
鯖にうpしたらエラーだった…
telnetでコマンドライン実行した所、↓のコードがダメだった
# 駄目
delete $hoge[ $i ];
# OK
delete $hoge{ $i };
単なるコーディングミスなんだけど、なんでローカルの perl では
コンパイル通っていたんでしょうか?
0710709
02/05/16 21:57ID:???0711げ鬱
02/05/17 01:00ID:Yz0hLQt9どこがまちがっているのでしょうか。。。
ちなみにperl -CPAN -e shellで関係するモジュールはインストール済みです。
-----
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
require 'jcode.pl';
my $ua = new LWP::UserAgent;
my $request = new HTTP::Request('GET', $ARGV[0]);
my $response = $ua->request($request);
if($response->is_success) {
$html_response= $response->content;
}else{
print $response->error_as_HTML;
}
0712げ鬱
02/05/17 01:00ID:Yz0hLQt9foreach (@html_response) {
if ($_ =~ m/name="?[^"]*"? value="?[^"]*"?/g) {
$data{'$1'} = $2;
}
if ($_ =~ m/NAME="?[^"]*"? value="?[^"]*"?/g) {
$data{'$1'} = $2;
}
if ($_ =~ m/NAME="?[^"]*"? VALUE="?[^"]*"?/g) {
$data{'$1'} = $2;
}
}
while(($key, $val) = each レta) {
push @key,$key;
push @val,$val;
}
$data1 = join(',',@key);
$data2 = join(',',@key);
&save_data;
sub save_data
{
$save_url = "./data.txt";
open(IN,">>$save_url");
flock(IN,2);
print IN "$data1\n$data2 \n";
flock(IN,8);
close(IN);
}
-----ここまで
0713厨房
02/05/17 03:50ID:bHXEkEom教えて下さい。
0714nobodyさん
02/05/17 04:09ID:???楽勝。
0715厨房
02/05/17 04:17ID:bHXEkEomご指導ご鞭撻、よろしくお願いします。
0716nobodyさん
02/05/17 11:12ID:kkxtU/zb「文字連結」ってどうやるの?
配列に入れて、joinするのはめんどいけど、
正規表現とかでやり方はないっすか?
0717nobodyさん
02/05/17 11:42ID:???ハァ?何が肢体のかワカラソ。
$catedstr = join "", $str1, $str2;
とか
$catedstr = $str1 . $str2;
のことじゃないよな?
0718nobodyさん
02/05/17 15:08ID:jYg7e4+R文字列の500文字目に"abcde"を入れるには
どういたら良いのですか?
0721nobodyさん
02/05/17 16:18ID:???0723時雨
02/05/18 22:28ID:T/2gJeJW0724nobodyさん
02/05/18 23:38ID:???掲示板のフラットボタン?こういうことですか?
<input type="submit" value="送信" style="border:solid 1px #000000">
これはスタイルシートつかってます。
Web制作板のCSSスレに載ってるサイト見て勉強してください。
0725nobodyさん
02/05/18 23:41ID:???たぶん平べったく見えるボタンの事だよね。それならスタイルシート。
border: 1px solid silver; とか。板違いなのでWeb製作板へ。
0726nobodyさん
02/05/18 23:41ID:???0727nobodyさん
02/05/19 01:22ID:AQpyLtDPsub a
{
my %hash = (a=>0,b=>1,c=>2) ;
return %hash ;
}
my %myHash = a() ;
こんな感じなんですけど、添削してくれませんか、ねた無しで・・・
0729727
02/05/19 01:45ID:AQpyLtDPレスありがとう御座います、確認不足でした。
うまくいけてました。
0730nobodyさん
02/05/19 08:13ID:???それはCGIの一部でローカルでテストする環境無いヤシが質問しているのか?
0731nobodyさん
02/05/19 12:20ID:fEY33UPf0734nobodyさん
02/05/19 16:04ID:Y5d1n8OFスクリプトを見られないように文字化けさせるやりかたがあるときいたのですが、
変換させる用にマクロメディアかマイクロソフトかで何かを
ダウンロードしてこないといけないと裏技の本に書いてあったそうです。
書店に本を探しに行ったのですが見つからず。もしご存じでしたら教えて下さい。
0735727
02/05/19 16:09ID:???自分の事?、
あるよ、Vine Linux2.?と、Slackware8、WinじゃCygwinも
自分の今回の確認ミスは、結果のハッシュ構造の確認をDumoer使っていたため、
リファレンス先のハッシュは問題無く表示されるけど、
直接ハッシュ指定すると正しく表示してくれないみたい、
常識?
0737nobodyさん
02/05/19 16:18ID:???0738734
02/05/19 18:53ID:81BFGvHeすみません。
おっしゃるとおりJavascriptのことです。
ソースのJavascriptを文字化けさせて、読めなくする方法だとききました。
わかりますでしょうか?
0739
02/05/19 19:02ID:2IiQOx1u情報お待ちしてます。
0740nobodyさん
02/05/19 19:11ID:???そこまでわかってんならスレ違い,というよりも板違い
0741nobodyさん
02/05/19 19:24ID:F0t0o3W7(WINのユーザー・FREEBSD上のcgi)
HPでデバックするため、
読み込んだファイルを
¥r¥nを¥¥rに書き換えて処理して、
¥¥rを¥r¥nに直して
改めてファイルに書き込んでいます。
1回目はちゃんと処理するのですが、
2回目以降、¥r¥nを¥¥rに書き換えて処理の部分が実行されていないようです。
書き換えられたファイルも一見何も変わってないようなものはないので
八方ふさがりになっています。
ファイルを書き込むときに
BSD上で¥r¥nが何かに変更されているとかしか考えられません。
そのようなことは起こりうるのでしょうか?
0742741
02/05/19 19:39ID:F0t0o3W70D0Aが、0A0Aに変わってしまっていました。
でも、
s/\\r/\r\n/ig;
してるんですよね。
何でだろう。
0743734,738
02/05/19 20:47ID:gBCciPdKあああ、すみませんでした!
今気付きました!
ここは[Perl]の初心者コーナーだったのですね。
「初心者」という部分しか目に入ってませんでした。
申し訳ありませんでした。
0745nobodyさん
02/05/19 21:01ID:???バックスラッシュと小文字の r ってこと?
なんでそんなことするのか理解に苦しみます。
0747nobodyさん
02/05/19 23:50ID:CPJQ1VYR@list=(102,105,111,205,245,250,297,312,322,456,473,479,482,499);
こんなかたちに分解したいんですけど
@list1=(102,105,111);#----------頭が1
@list2=(205,245,250,297);#------頭が2
@list3=(312,322);#--------------頭が3
@list4=(456,473,479,482,499);#--頭が4
出来るだけシンプルにやりたいなぁと思ったわけです。
で初心者の僕ががんばって考えたのは
$i=1
foreach(@list){
while($_ !~ /^$i/){#--$iの値を配列要素の先頭の数字とマッチするまで増やす
$i++;
}
push(eval("\@list"."$i"),$_);#---新しい配列「@list+$i」に配列要素を追加
}
というもので、当然というか配列と変数をくっつけるevalが
効かなかったんですよね。
なんかよい方法はないものかと。
いっぱい間違ってるかもしれませんが、簡潔な方法があればよろしくおねがいします。
0748nobodyさん
02/05/20 00:09ID:???for (@list) {
die 'あほ' unless(/^(\d)/);
push @{"list$1"}, $_;
}
0749747
02/05/20 00:49ID:dmmb40il大変短くして頂いてありがたいのですがエラーがでました。
スミマセン
0751nobodyさん
02/05/20 00:58ID:???@list=(102,105,111,205,245,250,297,312,322,456,473,479,482,499);
foreach (@list) {
next if !/^(\d)/;
eval sprintf 'push @list%s,$_',$1;
}
print @list1,"\n";
print @list2,"\n";
print @list3,"\n";
print @list4,"\n";
<>;
0752747
02/05/20 01:00ID:dmmb40ilpush @{"list$1"}, $_;
ココだけコピって使ったんですけどね
0753nobodyさん
02/05/20 01:01ID:???#!/usr/local/bin/perl
use IO::Socket;
use IO::Select;
@servers = ('www.zdnet.co.jp','www.asahi.com',);
print "Content-type: text/html\n\n";
foreach $server (@servers){
$socket = IO::Socket::INET->new(PeerAddr => $server,
PeerPort => 80,
Proto => 'tcp',
);
print $socket "GET /index.html\r\n";
print $socket "Host: $server:80\r\n";
$socket->flush();
print <$socket>;
}
これでページを取得出来るんですが、
ページを全部読み込んでしまいます。
これを一部のみ読み込むにはどうすればいいのでしょうか?
と、、、
print <$socket>;
これを変数にあてはめて表示するにはどうすれば、、、。
0754747
02/05/20 01:01ID:???0755747
02/05/20 01:05ID:???でもよーわからん、、、
ノートに書き写して後でゆっくり考えてみます。
ありがとう!
0756nobodyさん
02/05/20 01:11ID:???0758741
02/05/20 05:06ID:VDOXGDf5実際、\r・\r\n(あと\t)がどのような状態で入っているのか
cgiのコンソールで書かせて、HPに表示させるためです。
ただ長いスペースが空いているのではわからないので、
表示できる形に直しているのです。
>>746
そのとおり。XMLソースを加工しています。
問題をはっきりするため、読みこんだ$ファイルを
$a=~s/\r\n/\\r/ig;
$a=~s/\t/\\t/ig;
##デバック
$a=~s/\\r/\r\n/ig;
$a=~s/\\t/\t/ig;
して書きこんでいるだけなのですが、
書きこみ前と後のXMLファイルをVCでバイナリで開いてみると、
どうやら0D0Aが0Aに変わってしまっているようなのです。
何が問題なのでしょうか?
0759関係ないけど
02/05/20 05:30ID:???s///になんでiを付けてるのでちゅか?
デバッ ク ってなんでちゅか?
<pre>じゃだめでちゅか?
表示させるために置換したものを、なんで再びファイルに書くのれちゅか?
0760あとね
02/05/20 05:36ID:???0762とんちんかん
02/05/20 14:27ID:827vrQS8してるんですが、ちょっとした理由でこのログ ファイルが Unicode 形式になってしまいまいた。
でこのスクリプトで読み込んでみたら案の定白紙のテキスト ファイルを作ってくれました。
Perl で UCS2 のファイルの読み書きってできるんでしょうか?
Jcode.pmとかって使うんですか?
教えて君ですみません。
0763nobodyさん
02/05/20 16:08ID:???yes.
0764nobodyさん
02/05/20 20:31ID:???例えば
a==bで尚且つcの場合"あいうえお"を返す。a==bで尚且つcで無い場合"アイウエオ"を返す。
a==bでなかったら"123"を返す。それ以外は"---"を返す。
それで
if(a==b){if(c){z="あいうえお"}else if{(c){z="アイウエオ"}
}
else if{(a!=b){z="123"}
}
}
else{z="---"}
だと、当たり前のようにエラーになります。教えて君ですみませんが皆さんの力を貸して下さい。
0766nobodyさん
02/05/20 21:08ID:???もし $A eq $B かつ $A eq $C のとき $Z="あいうえお";
そうじゃなくて $A eq $B かつ $A ne $C のとき $Z="アイウエオ";
そうじゃなくて $A ne $B のとき $Z="123";
それ以外のとき $Z="---";
if && elsif else
0769nobodyさん
02/05/20 21:38ID:yMovYRK1$img = Image::Magick->new;
$img->Read( $file );
$img->Crop( $w, $h, $x, $y );
$img->Write( $file2 );
とやることで一ヶ所の切りだしはできるのですが、
格納している画像をカットしてしまうので、部分コピーするか、
元画像をコピーしようと思います。
ループの中に
$img2= $img->Clone;
を入れて、 $img2 に対して処理を行うことにしましたが、
Cropが有効にならなかったり、前回と同じ位置が吐き出されたりと
うまくいきません。
指定範囲を別の変数にコピーして、そこから書き出すということを
やりたいのですが、どのようにしたらいいでしょうか?
0771長瀬 愛
02/05/20 22:16ID:95UXUtUeカッコの数があわないのではないか。
それはともかく、この判定条件ではz="---"の文には
至らない気がするがまあいいや。
if(a==b){
if(c){
z="あいうえお";
}else if(c){
z="アイウエオ";
}
}else if(a!=b){
z="123";
}else{
z="---";
}
>>768
グレシャムの法則というのがあってね以下略
0772nobodyさん
02/05/20 22:17ID:???0773771 長瀬 愛
02/05/20 22:30ID:95UXUtUeくどいけど旅の恥はかきすて。
if($a==$b){
if($c){
$z="あいうえお";
}elsif($c){
$z="アイウエオ";
}
}else{
$z="123";
}
初心者は何がわからないかもわからなくて、検索もできません。
答える気がねーなら、煽ってんじゃねーヴォケが
ここは”一応”初心者スレなんだから。
オレモナー。
0775nobodyさん
02/05/21 02:20ID:iePDZE0bSSI/.htaccessが使用できないサーバ上にPerlで作成した単純なテキストを返すCGIをアップロードしました。
IEのアドレスエディットボックスに直接CGIのアドレスを入力すると正常動作しています。
これをindex.htmlがロードされると同時に読み込みたいのですが
CGIの参考書に載っている<!--exec cmd="hoge.cgi"-->や<img src="hoge.cgi">の呼び出し方が出来ません。
この他にindex.htmlと同時にhoge.cgiを読み込む方法がありますでしょうか?
0777nobodyさん
02/05/21 02:58ID:OppOtViG「SSI/.htaccessが使用できないサーバ」ですから
<!--exec cmd="hoge.cgi"-->
は使えません。
「単純なテキストを返すCGI」ですから
<img src="hoge.cgi">
はイメージデータが返さなければ意味がないです。
<script src="hoge.cgi"></script> で呼び出して、
ソースを下記のように javascript に書き換えましょう。
$text = "出力する文字列";
print "Content-type: text/plain\n\n";
print "document.write('$text')\;\n";
exit;
0778775
02/05/21 03:11ID:iePDZE0bご丁寧なレスありがとうございました。
早速試してみます。m(__)m
0780nobodyさん
02/05/21 03:53ID:1dGqnG5G学内BBS作ってるんですが、全員同じプロクシなので、
ほかに手っとり早く個人識別する方法はありますでしょうか。
0781nobodyさん
02/05/21 04:01ID:???(1)全員に固有のIDとパスワードを配布する。
(2)書き込みは係りの人に紙に書いて手渡しにする。
(3)自分だけ書き込み出来るようにすれば、おそらく書き込んだのは君だ。
(4)名前を書かせ、それを信じる。
0782775
02/05/21 04:04ID:iePDZE0b試して見ましたが、どうやらそのようですね。
ASAHIネットがCGIのβサービスを開始したからCGIの勉強を始めようとしたのですが・・・
うーん、他の人達は一体どのように対応しているのかなぁ???
もう少し調べて見ます。
ご指摘ありがとうございました。
0784nobodyさん
02/05/21 04:11ID:1dGqnG5Gうーん、2chのIDみたいなのとかつけたら
面白がると思うんだよね。
5) 300カ国の人間が300人自分の言語で書く。
0786nobodyさん
02/05/21 06:14ID:???今度IISでPerl使うんですけど、選択に迷ってまして、
どんなもんでしょ?
0790nobodyさん
02/05/21 10:59ID:???ActivePerl → 処理系名
ですよ。
0794nobodyさん
02/05/21 13:04ID:???どうしてもうまくいかない箇所があるのでどなたか教えてください。
書き込まれる本文を「$message」としたとき、
$message =~ s/(http:\/\/[ほげほげ]+)/<a href=\"$1\">$1<\/a>/ig;
こんな感じになると思うんです。
そこで、
$message =~ s/(http:\/\/[\w\.\,\/\~\-\+\=\#\%\&\?\(\)]+)/<a href="$1" target="_blank">$1<\/a>/ig;
こういう記述でやってみました。
ところが、どうしても以下のような「,」が続くURLや、
ttp://k-tai.impress.co.jp//cda/article/news_toppage/0,,9441,00.html
以下のような「&」が入るときに、URLのリンクがそこで途切れてしまうのです。
ttp://news.lycos.co.jp/company/story.html?q=20bloombergki1580637&cat=10
試行錯誤してみたのですが、詰まってしまいました。
どなたか教えて頂けませんか?
0795nobodyさん
02/05/21 13:50ID:???http://www.din.or.jp/~ohzaki/perl.htm#httpURL
0797とんちんかん
02/05/21 14:30ID:+ltjKcZFJcode,pMの実装例がみたいのですが、サンプルどこかにないでしょうか。
けっこうしつこく検索してるんですが。。。
UCS2をよみこむスクリプトつくりたいのdせうが。
0798nobodyさん
02/05/21 14:34ID:???DzSoft Perl Editorは良さそうだね。
(ただし、フリー版は行数制限あり)
http://www.dzsoft.com/dzperl.htm
0799nobodyさん
02/05/21 16:11ID:???最初はSocketを使って、レスポンスが帰ってきたらUpというようにしていましたが、
性質上どうも動作が重いので、代わりにpingで見ようとしましたが、全然資料が無くてよくわかりません。
どなたかご教授願います。
0800800?
02/05/21 16:21ID:???普通のテキストファイルはちゃんとできるのですが。
有用なリンクなどがあれば教えていただきたいです。
0801nobodyさん
02/05/21 16:44ID:???0802nobodyさん
02/05/21 16:50ID:???binmodeは多分やってるはずですが・・・。
以下ソースです。
$addr = (gethostbyname("www.2ch.net"))[4];
$name = pack("S n a4 x8", 2, 80, $addr);
socket(S, 2, 1, 0);
connect(S, $name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET /back.jpg HTTP/1.0\n\n";
open(A,">>back.jpg");
while (<S>) {print A;}
close(A);
close(S);
0803nobodyさん
02/05/21 17:13ID:???ダメすぎです。
0804nobodyさん
02/05/21 17:37ID:Eo1hAg2d"ー"は日本語のハイホン
これが走らないのですが、ーはできないのですか?
0805nobodyさん
02/05/21 17:41ID:???【Perl】FAQを敢えて質問するネタ心者コーナー
に変更されますた。
0806nobodyさん
02/05/21 18:08ID:???http://www.google.co.jp/search?num=100&hl=ja&safe=off&q=%83%6E%83%43%83%7A%83%93&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
ハイフン
http://www.google.co.jp/search?num=100&hl=ja&safe=off&q=%83%6E%83%43%83%74%83%93&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
ハイプン
http://www.google.co.jp/search?num=100&hl=ja&safe=off&q=%83%6E%83%43%83%76%83%93&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0807nobodyさん
02/05/21 18:18ID:???ttp://www.warbirds.nu/heiki/42000.htm
0809nobodyさん
02/05/21 22:04ID:???参考サイト(http://x68000.startshop.co.jp/~68user/)
書き出すファイルのファイルハンドルもbinmodeにしてね。
それとHTTPの応答は邪魔だから捨てると。
IO::SocketやLWPもチェック。
================================
use Socket;
$port = getservbyname('http', 'tcp');
$iaddr = inet_aton("www.2ch.net") or die "www.2ch.netは存在しないホストです。\n";
$sock_addr = pack_sockaddr_in($port, $iaddr);
socket(SOCKET, PF_INET, SOCK_STREAM, 0) or die "ソケットを生成できません。\n";
connect(SOCKET, $sock_addr) or die "www.2ch.netのポート$portに接続できません。\n";
select(SOCKET); $|=1; select(STDOUT);
binmode(SOCKET);
print SOCKET "GET /back.jpg HTTP/1.0\r\n";
print SOCKET "\r\n";
while (<SOCKET>){
m/^\r\n$/ and last;
}
open(FH, "> tmp.jpg");
binmode(FH);
while (<SOCKET>){
print FH $_;
}
close(FH);
0813nobodyさん
02/05/22 09:31ID:???0814nobodyさん
02/05/22 11:42ID:o5bpVYAL配列のサイズを求めたいのですが、length(@arry)や(-s @arry)で取れません。
サイズを求める記述を教えてください。
0815nobodyさん
02/05/22 12:29ID:TrskWj5Vforeach (@arry){$length = length;}
0816nobodyさん
02/05/22 12:30ID:???配列をスカラーコンテキストで評価すると要素数になります。
my @array = 0..99;
my $c = @array;
print $c;
それともこういうこと?
my @array = 0..99;
my $length = 0;
map { $length += length } @array;
print $length;
どちらにしろまともな参考書を読むのをお勧めします。
0817nobodyさん
02/05/22 14:29ID:FKXAo2H10818nobodyさん
02/05/22 14:31ID:FKXAo2H1$length=keys %hash_name;
0819nobodyさん
02/05/22 14:34ID:dip8mLbFuse MLDBM 'GDBM_File';
tie (%db, 'MLDBM', 'data.pag', O_CREAT|O_TDWR, 0644) || die;
としましたが、
MLDBM:error Second level tie failed 'ファイルもディレクトリもありません'
と出て止まってしまいます。
スカラーを格納する時は、use GDBM_File ですぐできたのですが、
このエラーの原因が解りません ;;
Diedは上記エラーの次に出ます。MLDBMは最新です。
どなかた勘所の解る方、ヒントでも教えていただけませんか。 よろしくお願いいたします。
0820nobodyさん
02/05/22 14:35ID:LbPQIjeDContent-type: text/html\n\n
書いて、HTMLを表示したものを、処理の終わりがけに消して
Location: jump_url\n\n
したいのだが、どうすればいいのれすか
0822nobodyさん
02/05/22 15:16ID:7BsbRs8K言っていることがいまいちわかりません。
参考URLがあったら、教えてくれ。
0823nobodyさん
02/05/22 15:19ID:???2重カウント防止のやつね。
0826nobodyさん
02/05/22 16:37ID:JlVHE84P0827nobodyさん
02/05/22 16:50ID:???結果表示用のフレーム(F1)とCGIの進行状況を監視するフレーム(F2)をつくる。
F1にはCGIの出力を垂れ流す。(長時間無出力でタイムアウトしないように注意)
F2ではCGIの状況を監視する監視用CGIを実行する。
監視用CGIは処理が完了するまでrefreshでループする、完了したらWindow全体をどっかに飛ばす。
0828nobodyさん
02/05/22 17:24ID:B5h8aDroPCなら飛ぶんですが。。。
0829nobodyさん
02/05/22 17:29ID:T+IRZr/d仕様です。
Locationヘッダを絶対パスじゃなく相対パスで指定してるとか?
0831nobodyさん
02/05/22 17:43ID:B5h8aDro絶対パスで指定しています。
cgiにジャンプしてるんですが、できないんでしょうか?
0833nobodyさん
02/05/22 18:23ID:a/hkqU170834nobodyさん
02/05/22 18:26ID:???> いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
>
>1:自分はこう言う事がしたい。
>2:それでこんな風にやってみたが・・・
>3:それだとこんなエラーが出て上手く行かなかった。
>
>1と3が無いと誰も答えられないよ、良い回答は良い質問から。
>一緒に勉強しましょう。
0835nobodyさん
02/05/22 18:51ID:???0836nobodyさん
02/05/22 18:59ID:dip8mLbF2ch掲示板のID付与機能は、何を見てなされているのでしょうか。
環境変数でしょうか。
cookieでしょうか。
よろしくお願いします。
0838836
02/05/22 19:08ID:dip8mLbF0839nobodyさん
02/05/23 00:03ID:wU66PY4jif (length($data{'coment'}) > 500){print 'コメントが長すぎます。'
}else{
構文チェックではOKが出るんですが、どこが間違ってるんでしょうか?
0841nobodyさん
02/05/23 00:54ID:???>これだとエラーが出ます。
エラーの内容を書けない理由でもあるんでしょうか?
>フォームの
↓ ヘッダ(Content-type)出力してますか?
>print 'コメントが長すぎます。'
0843nobodyさん
02/05/23 04:41ID:???・ ・ ・ ヽ(´ー`)ノ ・ ・ ・
0844nobodyさん
02/05/23 16:07ID:???$strtmp = htmlテキスト
の条件で
$strtmp =~ /<a*href=(\w+)>/i;
print "URL = $&\n";
のように指定しておりますが、$&が返ってきません
($1にしても同様でした)
なるべくシンプルな形で改善方法およびもっと良い方法があれば
ご教授いただけますでしょうか。
0845nobodyさん
02/05/23 16:11ID:???×a*href
○a.+?href
0846844
02/05/23 17:00ID:???ありがとうございます。
どうしようもないとこまちがってました。
ただ、直してもやはり結果が
URL =
と何も出てきません。なぜなのでしょう??
0847nobodyさん
02/05/23 17:10ID:yzRVE+W0えっとperlの関数でエクセルのMAXやMINと同じ働きをするのはないの
でしょうか?
やりたいことは、
ある配列リストの中で、一番大きな数字と一番小さな数字を抜き出したい
んです。
例えば
@AA = (1, 0, 5, 13, 8, 0, 4,);
となっていたときに、最小の0と最大の13を抜き出して、それぞれを別々の
スカラー変数に入れるようにするにはどうしたらいいのでしょうか?
(@AAの中に入る数字は、整数だけです。また@AAの中身は別の計算で出た答え
を順番にならべたものなので、可変します)
よろしくおねがいします。
0848nobodyさん
02/05/23 17:26ID:???perlfaq9
#!/usr/bin/perl -n00
# qxurl - [email protected]
print "$2\n" while m{
< \s*
A \s+ HREF \s* = \s* (["']) (.*?) \1
\s* >
}gsix;
>>847
# もっと効率いいのがあるかも
@AA = (1, 0, 5, 13, 8, 0, 4,);
@BB = sort { $a <=> $b } @AA;
$MIN = shift @BB;
$MAX = pop @BB;
0849nobodyさん
02/05/23 17:28ID:???\wは正規表現でなにを意味するかをよく考える。
そしてURLに使われる文字列に必ず入るはずのものを考える。
://
0851847です
02/05/23 18:24ID:ETJF2qc1すごい!素早い回答ありがとうございます。
そうか、sort使えば出来ますね。関数ばかりを探していたので、気がつか
なかったです。
ありがとうございました。
0852nobodyさん
02/05/23 19:27ID:9GY0TqYi0853nobodyさん
02/05/24 01:20ID:T4wzQrMy教えて下さい。
@array の中は $array[a][b][c][d]...
と言う感じになっていて、
aの部分や、bの部分など条件を変えてソートが出来るようにしたいのですが
どうゆう方法でやるのが一般的なのでしょうか?
sort関数は使えなそうなので、自分で作るしかないんでしょうか。
0854nobodyさん
02/05/24 02:25ID:???ソースは下のurlにupしておきました。ご指導お願いします。
http://www68.dns.ne.jp/~bbs2/upload3/helen/OB0008502.lzh
0855nobodyさん
02/05/24 02:28ID:???Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
Bareword found where operator expected at C:\inetpub\WWWROOT\testbbs.cgi line 33
, near "$myaction ep"
(Missing operator before ep?)
String found where operator expected at C:\inetpub\WWWROOT\testbbs.cgi line 33,
near "ep 'write'"
(Do you need to predeclare ep?)
Bareword found where operator expected at C:\inetpub\WWWROOT\testbbs.cgi line 35
, near "$mytitle ep"
(Missing operator before ep?)
String found where operator expected at C:\inetpub\WWWROOT\testbbs.cgi line 35,
near "ep ''"
(Do you need to predeclare ep?)
syntax error at C:\inetpub\WWWROOT\testbbs.cgi line 33, near "$myaction ep "
Execution of C:\inetpub\WWWROOT\testbbs.cgi aborted due to compilation errors.
ローカルでテストできる環境作れ。
http://tohoho.wakusei.ne.jp/wwwcgi6.htm
0856nobodyさん
02/05/24 02:52ID:???質問の意味が分からない。具体的に何がしたいのか書いてくれ。
aやbの条件を変えて、とかワケワカラン。
個人的にはあまり多次元にならないようにした方がいいと思う。
二次元配列で値のソートをする場合こんな感じ?
my @array;
for my $one (0..9) {
for my $two (0..9) {
$array[$one][$two] = $one * $two;
}
}
@sorted_by_value = sort { $b <=> $a } map { @{$array[$_]} } 0..$#array;
print join "\t",@sorted_by_value;
0857nobodyさん
02/05/24 03:22ID:???構文チェックだけ。
>$mytitle ep ''
↑ 4個所ほど ↓ 3個所くらい(関係無いけど、なんでbmp?)
>$myurl = "<<a href=$myurl><img src="home.bmp"></a>>"
↓ FOOTの後ろにオマケが。
>FOOT
0858854
02/05/24 04:31ID:???掲示板が表示されるようになりました
が、書き込みのところがおかしいみたいなのでまだ調整が必要なようです。
調整はひとまず寝てからにします。どうもありがとうございました。
0860nobodyさん
02/05/24 07:34ID:???&boo( @foo );
sub boo
{
パラメーターとして連想配列が
渡ってくるんだけど、
どうやって参照するのか解らないっ!
foreach $k ( keys @_ ) {
print "$k = $_{$k}\n";
}
なんか、違う・・・気が・・・する・・・
}
0861nobodyさん
02/05/24 08:04ID:???0862nobodyさん
02/05/24 09:43ID:???貴方は@fooを連想配列だと思っているのか、
それともデリファレンスの方法がわからないのにリファレンスを使おうとしているのか、
どっちですか。
>>861
File::Pathのrmtree
#!perl
use File::Spec;
rmtree [ '/', @other_path ], $is_verbose, $is_safe;
0863nobodyさん
02/05/24 10:20ID:???0865nobodyさん
02/05/24 12:16ID:RsaAAUuOSSLサーバー内のCGIからSendmailを使ってメール送信する場合
その内容は暗号化されるのでしょうか?
具体的には、アンケートフォームを、セキュアディレクトリ内で動かして
その内容をメールで送信したいのですが・・・・
0867nobodyさん
02/05/24 12:54ID:RsaAAUuOとかうたっておきながら注文内容がそのままメールで来るのって、
ぜんぜん意味が無いってこと?
0868nobodyさん
02/05/24 13:03ID:???インターネット上で勉強していたんですが、=~の意味がイマイチ分かりません。
誰か教えてください・・・。こんな初歩的な質問をしてスミマセン。
0869nobodyさん
02/05/24 13:26ID:JeawxLYiDBMってロックできないのでしょうか?
0870質問
02/05/24 13:49ID:???ActivePerl&Apacheをインストールしってプレーンテキストで文字を表示
する事は出来たんですが、HTMLをCGIスクリプトで表示させようと思ったら
エラーが出ました。
↓↓
#! c:/perl/bin/perl
# CGIヘッダーの出力
print "Content-type: text/html\n\n";
# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>Hello HTML</title></head>\n";
print "<body><p>これは、HTML文章の例です。</p></body>\n";
print "</html>";
どうしてなんでしょう?
0871nobodyさん
02/05/24 13:54ID:???> いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
>
> 1:自分はこう言う事がしたい。
> 2:それでこんな風にやってみたが・・・
> 3:それだとこんなエラーが出て上手く行かなかった。
>
> 1と3が無いと誰も答えられないよ、良い回答は良い質問から。
> 一緒に勉強しましょう。
1と2はあるが、3がないな・・・。
Winでやってるなら、
print "Content-type: text/html\r\n\r\n";
にしてみ。
0873nobodyさん
02/05/24 14:12ID:kdQeUGzgcookie自体に名前付けるとか。
2時間弱ネットさまよってますけど、見つかんないんです…。
0874nobodyさん
02/05/24 14:20ID:???もうちょっとわかりやすく。
多分できる。
0875nobodyさん
02/05/24 14:36ID:lhjaJYwp0876nobodyさん
02/05/24 14:38ID:kdQeUGzg日付が今日と同じなら同じものを表示したいんですが、
その日付と時間秒数が、名前やメールを変えると、
一緒に同じ日付でも更新されてしまいます。
0877nobodyさん
02/05/24 14:41ID:???ttp://pc.2ch.net/test/read.cgi/php/984840107/
スレ一覧の検索ぐらいする!
>876
日本語で説明してくれ。
0878nobodyさん
02/05/24 14:42ID:kdQeUGzgもうちょっと自分でがんばってみます(鬱
0879nobodyさん
02/05/24 16:07ID:ftO6wAMU拡張子は.shtmlで
<!-- #include virtual="./aaa.cgi" -->
と記述しています。
cgiを直接起動させると正しく出力しています。
パーミッションもいろいろと試してみました。
どのような対処が考えられますでしょうか?
ちなみにサーバはGMOのサーバで試してます。
ローカルではうまく動いているのですが・・・。
0880nobodyさん
02/05/24 16:33ID:???>>1
> いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
>
> 1:自分はこう言う事がしたい。
> 2:それでこんな風にやってみたが・・・
> 3:それだとこんなエラーが出て上手く行かなかった。
遠くの本屋で本を買え。
virtualで読み込むSSIが直接起動で正しく出力?
Content-type: text/htmlヘッダしか吐かないはずなのに
正しく表示されるほうがおかしくないかい?
0882nobodyさん
02/05/24 17:22ID:ftO6wAMUshtmlファイル上にCGIで出力されたテキストをのせたいので、
<table>
〜
</table>
までを出力させてます。
ブラウザでCGIを直接起動すると
タグには<table>〜</table>までちゃんと出力されてました。
shtmlから起動すると
<!-- #include virtual="./aaa.cgi" --> これがそのまま書かれているだけです。
なにか根本的に間違ってたりするのでしょうか・・・。
0883nobodyさん
02/05/24 17:43ID:???クレジットカード番号がメールに書かれていたら問題だけど、
商品名や自分の名前くらいなら別にいいんじゃない?
それすらイヤならそもそもメール使えないし。
ローカルでうまく動いてるって、ローカルサーバではなくその事?
目的のサーバでSSIのvirtualが使えるのならCGIに問題あるとしか
考えられないけど。
いずれにしてもソースを見なければ。
0887nobodyさん
02/05/24 18:42ID:???環境変数を色々使えばできるとは思うが、情報不足で答えられん。
環境変数も鯖によっては取得できなかったりもするし。
0888nobodyさん
02/05/24 18:45ID:???全自動でやることを考えるよりも、
$local_path = '..';
$full_path = 'http://〜〜/cgi-bin';
$path =~ s/$local_path/$full_path/;
と手入力でやった方が簡単だぞ。
スクリプトを配布するなら別だが、それだと環境変数でのやり方は鯖によって
可不可が変わるから難しいと言っておく。
0889885
02/05/24 18:57ID:???えっと、Socket使って他サーバーにあるHTML読み込んでそこにあるタグから
アドレスを抜き取ってファイルをダウンロードしてみようとか考えて、
http://〜の形式のアドレスではできたのですが、相対パスはいろいろ考えてみたのですが
よくわからないので相談してみたんです。
0890nobodyさん
02/05/24 19:06ID:???ソケットを使うって事はその基点となるURLはわかってるわけだろ?
だとしたら、そこから「../があったらURLを削る」、「./だったら同じフォルダ」で
URL変換を入れればいいだけじゃないのか?
0891nobodyさん
02/05/24 22:19ID:???・HTML読む
・<base>, <meta http-equiv="base">があったらそれ、無い場合はリクエストからベースURLをつくる。
・相対パスだったら連結する。.や..はhttpサーバがよきにはからってくれる。
0892nobodyさん
02/05/24 22:32ID:ftO6wAMUローカルサーバではうまくいってます。
借りてる鯖の説明にはSSIは使えるとかいてありますが、
普通のhtmlファイルやテキストファイルをインクルードしても全く反応しません。
本当にSSI使えるのかな・・・・。
0893nobodyさん
02/05/24 23:01ID:???<!-- #include virtual="./aaa.cgi" --> を
<!--#include virtual="./aaa.cgi"--> にしたら動いたりしてな
0896nobodyさん
02/05/25 03:06ID:???もし配列のデリファレンスが判らないのならば、
@{$array[0][0]}のように、@{}の中にリファレンスを書けばいいだろう。
File::Pathのrmtreeがわからないなら実際にドキュメント読んでまず試せ。
0897nobodyさん
02/05/25 03:32ID:???ネエYOとWarningが出た。CPANへ探しに行ったが見あたらん。
何ですのコレ。make test に問題が出るだけで、そのまま使え
そうな気もしますが。
0898nobodyさん
02/05/25 03:41ID:???http://search.cpan.org/doc/MSCHWERN/Test-Simple-0.44/lib/Test/More.pm
0899nobodyさん
02/05/25 03:59ID:???んやね。一生懸命、目で探してますた。ありが�d
0900nobodyさん
02/05/25 05:07ID:???0901nobodyさん
02/05/25 07:46ID:/kHlEeLMサブルーチン内からmain内でmy宣言した変数を
参照するにはどうすれば良いのでしょう。
引数で参照渡しするしかない・・・?
それとも、これってmy宣言の意味わかってない・・・?
0902nobodyさん
02/05/25 09:39ID:???>引数で参照渡しするしかない・・・?
>それとも、これってmy宣言の意味わかってない・・・?
その通り。my 宣言されたもんはlocal変数だと思ってください
0903nobodyさん
02/05/25 09:45ID:XVu0yEmF実行結果を表示させようとしています。
str1 = URL_CGI + "?" + form.namae.toString()+ ...略;
window.open(str1, ...略);
普通にフォームのactionでこのCGIを呼び出すと、
新しいウィンドウのロケーションバーには引数無しのアドレスが
表示されますが、
http://www.abc.jp/abc.cgi
上の方法で呼び出すと引数付きのダラダラと長いアドレスが
入ってしまいます。
http://www.abc.jp/abc.cgi?data:namae=山田太郎&toshi=...略
この無駄に表示される引数の部分を無くしたいのですが、
どうすれば良いでしょうか?
「JAVAscriptで新しいウィンドウを開き..」の部分は変更不可です。
どうか皆さんの知恵をお貸し下さい。
0904nobodyさん
02/05/25 09:54ID:???無理。
0906903
02/05/25 10:33ID:XVu0yEmFPerlCGI側の操作でもなんとかならないかなと思ったんです。
一旦新しいウィンドウを開いておいてから
移動とかどうとか・・・駄目ですか?
では、アプローチを変えます。
903の挙動が何故問題になるかというと、
cookieが複数になってしまうからなんです。
これを統一しようと思ったらどうすればよいのでしょう? なにとぞ・・・
0907nobodyさん
02/05/25 10:51ID:???perl以前の問題。
CGIで〜〜な事がしたい。perlではどうするのでしょう? なら話はわかるが。
〜〜のところをはっきりさせてから出直しな。
0908nobodyさん
02/05/25 13:31ID:???とかで取り出す変数をそのループの外で使う場合
はどうすれば良いですか?
0909nobodyさん
02/05/25 16:20ID:???0910nobodyさん
02/05/25 17:24ID:???foreach (@data){
if(/<a href="(.*?\.($ext))">/i){
print $1;
--処理--
}
if(/<img src="(.*?\.($ext))">/i){
print$1;
--処理--
}
}
※@dataはHTMLのソースが入っている。$extは拡張子
とやっていて拡張子をgif、jpgなどですると
<a href="hoge/hoge.html"><img src="hoge.jpg"></a>と言う形式の時に
出力が hoge/hoge.html"><img src="hoge.jpg と出力されてしまいます。
拡張子が(この場合は)htmlで試すと大丈夫なので自分でも解決方法を考えても
わからなかったのでここで質問させてもらいに来ました。
0911アルバムモナ
02/05/25 17:31ID:yOCzjbychttp://isweb37.infoseek.co.jp/computer/man_king/
モナー写真いっぱいほしぃモナー
ところでどなたかインフォシーク鯖の詳しい環境を知っておられる方いませんでしょうか?
JSPが使えるかどうかとかしりたいです。
use LWP::Simple;
$page = http://www.abc.jp/abc.cgi?data:namae=山田太郎&toshi=...略";
$doc = get $URL;
print $doc;
とかいうのはダメなのかな?
0916お願いします
02/05/26 02:39ID:WlbJvt440917nobodyさん
02/05/26 02:45ID:cGfFiopg$hoge =~ s/[\r\n]|\r|\n//g;
う〜ん、美しくない。
0919教えて君
02/05/26 03:10ID:???表示されません。ちなみにniftyです。niftyは少し特殊だと
聞いたのですが、どこのスレで聞けばいいでしょうか?
とりあえず上の方に初心者というのがあるこのスレで
聞いてみました。よろしくお願いします。
初心者ですんません。
0920nobodyさん
02/05/26 03:28ID:???>いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
ここで聞いてください。
【初級】CGI総合スレッド@Web制作板
http://pc.2ch.net/test/read.cgi/hp/1016938825/l50
0921916
02/05/26 03:28ID:WlbJvt44出来た!ありがとー!
0922nobodyさん
02/05/26 16:46ID:CiF8CZ1Z前はそんなことなかったんですけど、どうしたら普通に開けますか?
0923(゚д゚)ウマー&rlo; (゚д゚)ーズマ
02/05/26 17:10ID:???0924スレッドストッパー&rlo;止停
02/05/26 17:12ID:???0925仕様書無しさん
02/05/26 20:00ID:???0926仕様書無しさん
02/05/26 20:02ID:???923と924はいったいなんなんだ〜?
2chがハクされてるの?
0927lo;
02/05/26 20:22ID:???ちょっとしたことをするだけでできるよ
0928nobodyさん
02/05/26 20:36ID:???0929(゚д゚)ウマー&rlo;(゚д゚)ーズマ
02/05/27 00:05ID:???0930&rlo;ぞいなてきで&rle
02/05/27 00:07ID:???0931&rlo;・・・たっまし&rle;
02/05/27 00:08ID:???0932仕様書lo;無しさん
02/05/27 00:54ID:???0933lo;・・・たっましle;
02/05/27 00:55ID:???知らなかった
0934nobodyさん
02/05/27 08:16ID:???0935nobodyさん
02/05/27 16:05ID:???今日気がついた。
0936nobodyさん
02/05/27 16:27ID:???という煽りレスの一つでもつけようとしたが、もしかしたら俺が知らないだけかもしれない、
と思って、ひとまず検索することにした。
するとどうだ、javeは存在するではないか。
http://www.jave.de/
あぶないあぶない。無知を晒す所だった。
俺もこのソフトでいっちょiアプリでも作ってみるか。
0937nobodyさん
02/05/27 20:23ID:HK5rJclO(自分のdocomoも弾かれてしまう)どこが間違ってるんでしょうか?
if ($ENV{'HTTP_USER_AGENT'} ne~ /DoCoMo/) {
print "Location: http://www.yahoo.co.jp/\n\n";
}else{
0938nobodyさん
02/05/27 20:38ID:???0939nobodyさん
02/05/27 20:58ID:3m1HaKVa使用法として、プログラム側で
$template->param(
HOME => $ENV{HOME},
PATH => $ENV{PATH},
);
みたく変数を用意して、HTMLまじりのテンプレート側で
My Home Directory is <TMPL_VAR NAME=HOME><br>
My Path is set to <TMPL_VAR NAME=PATH><br>
なんて使うんだけど、プログラム側で事前に用意した変数を
テンプレート側で使用しないと、何も出力されなくなるんです。
これを防ぐ方法か、もしくは適当な回避策って無いんでしょうか?
実際に使用してる方の意見が聞いてみたいです。
ちなみに現在は、不要な変数名が「BOOL」だとしたらテンプレート側で
<TMPL_IF BOOL><TMPL_ELSE></TMPL_IF>
なんてお茶を濁しています
0940nobodyさん
02/05/27 21:46ID:???何がしたいのか分からん。
宣言をしていない変数を参照すれば空白であってしかるべきだと思うのだが。
お茶の濁し方も意味不明。それじゃどうやっても空文字列にしかならんだろ。
0941nobodyさん
02/05/27 22:17ID:???(標準、エラー出力を文字列かしたいって事っす)
「うまい」方法教えてください。
「よろしく、おながいします」
0942nobodyさん
02/05/27 22:34ID:???悪い。ネタの相手してる暇はねぇんだわ。
0943942
02/05/27 22:49ID:vs9qORcp教える気ねぇ〜なら、すっこんでおつぅ〜の、わかったか?
0945nobodyさん
02/05/27 22:56ID:???悪質な質問->DQN逝ってよし!->スキルねぇやつはすっこんでろ!
この三連コンボはジエンですか?
0947nobodyさん
02/05/27 23:40ID:???> 何も出力されなくなるんです。
STDERR にエラー吐き出されるんで、httpdのエラーログ見なよ。
本題は、ドキュメントを良く読んで、new で die_on_bad_params => 0 しる。
で、エラー無視するハズだがなあ。俺はやったこと無いけど、
デバッグする時なんかは、簡単にコメントにしてるな。
$template->param(
HOME => $ENV{HOME},
PATH => $ENV{PATH},
#BOOL => $fuga
);
0948942
02/05/28 00:12ID:???ひきつづき、「よろしくおながいします。」
0949937
02/05/28 01:10ID:yZ0xvPBxどうしてもdocomoが弾かれてしまう。どこが間違ってるんでしょうか?
if ($ENV{'HTTP_USER_AGENT'} ne ~ /DoCoMo/) {
print "Location: http://www.yahoo.co.jp/\n\n";
}else{
0950nobodyさん
02/05/28 01:12ID:???正規表現でかわいい顔が出た時〜
0952nobodyさん
02/05/28 01:32ID:???まずは正規表現の書き方から覚えよう。
if ($ENV{'HTTP_USER_AGENT'} ne ~ /DoCoMo/) {
だと
if ($ENV{'HTTP_USER_AGENT'} ne ($_ =~ /DoCoMo/) ) {
になるんじゃないかな?
まず一致する事はないね。
0953nobodyさん
02/05/28 01:48ID:???正規表現の書き方はおかしくねえだろ。おかしいのは、パターン
結合演算子の書き方。つか、キミ自身が正規表現とは何たるかを
勉強した方が良いとちゃう?
0954nobodyさん
02/05/28 01:56ID:???確かに色々間違ってた模様。
ありがとう。
ttp://a414s1.it.nanzan-u.ac.jp/textbook/text082100-2/node81.html
こんなの見つけて色々勉強になった。
漏れには結構基本的な部分が抜けてた模様。
0955nobodyさん
02/05/28 02:41ID:???そのリンク先のパターン結合演算子の説明おかしくないか?
俺の知らない、Perl得意の省略形かと一瞬思っっちまったが。
なんで=と!の単項やねん?もっと、まともなサイトを探すのが吉。
0956nobodyさん
02/05/28 03:16ID:???鵜呑みにするところだった…
グーグル様で検索して最初にひっかかった物だからつい…
0957!~ 使え!コゾウ
02/05/28 03:58ID:???if ( $ENV{'HTTP_USER_AGENT'} !~ /DoCoMo/ ) {
print "DoCoMo 逝ってヨシ!\n";
}
0958nobodyさん
02/05/28 08:36ID:???「名前・メルアド・URL・本文」以外に年齢とか趣味とかの
項目を追加したいと思います。どうすればいいのでしょうか?
テスト用のサンプルとしてKENTさんのASKA BBSを使ってます。
http://www.kent-web.com/bbs/sample/aska.cgi
0959nobodyさん
02/05/28 08:43ID:???ttp://pc.2ch.net/test/read.cgi/php/1012839651/
スクリプト改造工房 Part4
ここに行けばいい。
0960nobodyさん
02/05/28 09:05ID:5/swSF0dREADで読んできた文字列データ(50kくらい)に含まれる特定の文字列(複数個)を
検索しようとしているのですが、うまく行きません・・。
if(VALUE =~ /PATTERN/){
だと一度に1つしか検索できないし
while(VALUE =~ /PATTERN/){
だと同じ部分でmatchしつづけてします。。
0961nobodyさん
02/05/28 09:17ID:???検索した後どうしたいかにもよるが。
VALUE =~ /PATTERN/g;
0962960
02/05/28 09:41ID:???ありがとうござます。自分の持ってるperl初心者本に詳しく書いて無かった事もあり、
optionについて勉強不足でした。助かりました。
0963nobodyさん
02/05/28 09:59ID:???$str ne ~ /pattern/
これは
$str ne ($_ =~ /pattern/)
じゃなくて
$str ne ~ ($_ =~ /pattern/)
だろ。誰か気付けよ。
0964nobodyさん
02/05/28 17:29ID:???配列Aと配列Bがあったとします。
@A = (1,2,3,4)
@B = (a,b,c,d)
これを1-a 2-b 3-c 4-dと表記しようと思います。
foreach $X(@A){ print "$X";
foreach $Y(@B){ print "-$Y";
} }
この書き方だと、
1-a-b-c-d 2-a-b-c-d・・・と言うような結果になりますよね?
二つの配列の内容を同時に一回ずつ表記する方法はないものでしょうか?
0965nobodyさん
02/05/28 17:31ID:???よろしくお願いします。
0966nobodyさん
02/05/28 17:39ID:???print "$A[$i]-$B[$i] ";
}
これじゃダメなの?
0967だめぽ
02/05/28 18:04ID:NVFnKI0Cアクセス解析に今日と昨日のカウンタをつけたいです。
ログのフォーマット
アクセス通し番号<>日付<>IP<> ・・・
日付は 2002/05/28(火) 18:00 という書式です。
別にカウンタ用ファイルを用意すれば可能ですが、ログをひとつにまとめたいのです。
やろうとすると一日のとき前月の日付がいろいろ変わるのですごい大変でした。。
お願いします。m(_ _)m
0968nobodyさん
02/05/28 18:10ID:???前日の日付の求め方を聞きたいのかな?
それならlocaltime(time-24*3600);で出せばいいだけだけど。
でも、そんな事をするくらいなら、ログファイルの中に日付だけのデータを作った方が楽だと思う。
0969だめぽ
02/05/28 18:22ID:???ありがとうございます。
>localtime(time-24*3600);
これでできそうな感じがするので、やてみます。m(_ _)m
0970nobodyさん
02/05/28 21:56ID:???0971nobodyさん
02/05/28 22:53ID:IYnV1U6d0972nobodyさん
02/05/28 22:57ID:???if($a == int($a)){
0973(・v・)
02/05/29 03:55ID:???>>967 は 2002/05/28(火) 18:00 ←こんな書式の日時文字列を
time とかで返される様な値に変換したいのカナ?
at-works の access log のログファイルみたいだ…
俺、これ改造して普通に time 値が返すような値を
カキコするように改造したが…
0974811
02/05/29 19:35ID:???ウインドウのタイトルを取得したいんですが。
CGIじゃなくてローカルで使います。
0975nobodyさん
02/05/29 21:58ID:???bbb<>2
ccc<>3
これを
2番目の数が多い順にソートしたいんですが、
どうすればいいのでしょう?
0976nobodyさん
02/05/29 23:44ID:BqVeUZ/KWin::API
ここにちょっとだけ使い方が載ってました。
http://member.nifty.ne.jp/hippo2000/perltips/perllha.htm
>>975
Schwartzian Transform
http://www.din.or.jp/~ohzaki/perl.htm#SortST
で、質問なんですが、
tieの使い方がいまいち判らないのですが、
「こういう時に使うと効果的」というサンプルありましたら教えてください。
0977スレッドストッパー&rlo;止停
02/05/29 23:51ID:???適当に流しすぎ、、、。
0978976
02/05/29 23:52ID:BqVeUZ/K今はDB_File.pmを使う時にだけtieを使ってます。
例えばFETCHメソッドはtieで関連付けた変数から値を取り出す時に自動的に呼ばれる、
というのは判るんですが、それがどういう利点を持つのかが判りません。
0980nobodyさん
02/05/30 01:02ID:???利点って・・・FETCHとかSTOREがなかったらtieをつかえへんやん
例えばだけど、Tie::Fileってモジュールは配列をtieして、
ファイルの要素を配列の要素としてアクセスできるようにしてる。
my $this_is_the_first_line = $tied_file[ 0 ];
my $this_is_the_last_line = $tied_file[ $#tied_file ];
で、ここでFETCHがどう入ってくるかというと
1) 配列要素にアクセス
2) tieされているオブジェクトにFETCH()が呼ばれる
3) ファイルのn行目を読み込んで返す
という動作を行うわけ。だからインターフェースはあくまでも配列
なのに全然配列とは違う動きをさせられる。そういう時にtieを使う。
DB_Fileも同じ。本当はハッシュじゃないんだけどハッシュをアクセス
する時に裏側でフラットファイルデータベースのレコードにアクセスしてる
わけや。
0981nobodyさん
02/05/30 01:04ID:z8tD+2yUparlってナニ?
perlなら知ってるけど…
クソレスでスマソ(゚∀゚)!!!!
0982nobodyさん
02/05/30 02:14ID:9bTblmUwglobで返ってくるファイルのリストは、必ず順ソートされているものなのでしょうか?
ズブ初心者で申し訳ないす。
0984
02/05/30 04:15ID:rYtvxDASKeep-Alive: timeout=??
の??の部分はタイムアウトまでの秒数を表しているのは分かりますが、このタイム
をカウントし始めるのは何時なのでしょうか。ヘッダーを受け取った瞬間からなの
か、全てのデータを受信し終わった瞬間からなのか…ご教示お願いします。
0986984
02/05/30 04:32ID:rYtvxDAS「HTTP」でhttp://pc.2ch.net/php/subback.htmlを検索しても余り良さそうな
スレがありませんでした。そうなると、使っている人口が多くてWEBに関わってい
る人が多そうなPerlのスレ…しかも初心者コーナーでありPart12まで続いている
老舗なら…これは行ける!とそう踏んだのですが…。
0987nobodyさん
02/05/30 06:09ID:???まぁまぁ。単発スレ立てられるよりいいのでは?
どうせ、もう落ちる訳ですし
>>984
Content-lengthを踏まえて推察するに、ヘッダ受信終了時では?
もっとも、C・S共々対応していないと話しになりませんが(w
0988nobodyさん
02/05/30 06:36ID:???CGIだけど、なんか質問ある? part 6
http://pc.2ch.net/test/read.cgi/php/1019561283/
このスレでいいんじゃない?
0990nobodyさん
02/05/30 07:32ID:???http://pc.2ch.net/test/read.cgi/php/1021951436/
0991nobodyさん
02/05/30 10:46ID:???ドキュメント全部読んでからのはずだが、このくらい自分で実験しろよ。
ヘッダ書き出した後CGIをrefreshまで終了させなきゃ出来るだろ。
0993nobodyさん
02/05/30 13:01ID:???print "$E$\n";
では、やっぱり表示されませんでした。
何か良い方法ありませんか?
0994nobodyさん
02/05/30 13:13ID:???立ててみた
【Perl】初心者コーナー Part13
http://pc.2ch.net/test/read.cgi/php/1022731565/
>>993
CGIの質問はこちらへ
CGIだけど、なんか質問ある? part 6
http://pc.2ch.net/test/read.cgi/php/1019561283/
0996278
02/05/30 17:28ID:???$tag_regex_ = q{[^"'<>]*(?:"[^"]*"[^"'<>]*|'[^']*'[^"'<>]*)*(?:>|(?=<)|$(?!\n))};
$str = join '',
map { /^</ ? map { /["']$/ ? $_ : lc } split /(["'])(.*?\1)/s : $_ }
split /(<$tag_regex_)/o, $str;
0997nobodyさん
02/05/30 23:38ID:???0998nobodyさん
02/05/30 23:39ID:???0999nobodyさん
02/05/30 23:41ID:???1000nobodyさん
02/05/30 23:42ID:???∧ ∧ <1000です。
( ゚Д゚ ) \_____
 ̄ ̄Ψ ̄ (つ_つ_____
 ̄ ̄□∇ ̄\|オツカレサマ...| \
 ̄ ========= \
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。