トップページ⇒php
1001コメント328KB

【Perl】初心者コーナーPart10

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/02/24 22:18ID:zOj6Yq/3
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

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

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけど、なんか質問ある?part5】
http://pc.2ch.net/test/read.cgi/php/1009331505/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/

過去ログ、その他の役立ち情報は>>2-10を見よう。
0002名無しさん@お腹いっぱい。02/02/24 22:19ID:???
[過去ログ]
Part1 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/

[ひまぢん氏のミラー]
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
0003名無しさん@お腹いっぱい。02/02/24 22:20ID:???
[総合]
 ・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/
0004名無しさん@お腹いっぱい。02/02/24 22:21ID:???
[Module]
 ・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module_/
 ・PPMPackages: http://www.activestate.com/PPMPackages/
 ・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm
[Security]
 ・安全なプログラミングのためのガイドライン:http://www.FreeBSD.org/ja/security/#spg
 ・Perl security:http://www.perldoc.com/perl5.6/pod/perlsec.html
 ・Perl security和訳:http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsec.html
 ・CGI and Security http://www.ansi.co.jp/tech/cgi/security/
 ・The Unofficial Web Hack FAQ:http://www.nmrc.org/faqs/www/
 ・How to Write Secure Code:http://www.shmoo.com/securecode/
 ・Safe CGI Programming :http://www.improving.org/paulp/cgi-security/safe-cgi.txt
[OS]
 ・Linux日本語マニュアル:http://www.linux.or.jp/JM/
 ・FreeBSD日本語マニュアル:http://www.jp.freebsd.org/man-jp/
0005名無しさん@お腹いっぱい。02/02/24 22:28ID:???
>>1
スレたてご苦労様です。

perlでつくられたCGIを改造しようとしています。
2MB(2-3000件)程度のデータを読み込んで、名簿を表示するデータベースCGIです。1件1行のSCVになっています。
鯖への負荷を少なくするために、このCGIのメモリ負荷を調べたいのですが、どのような方法があるでしょうか?
ローカル環境はANHTTPD+win2000+activperlでperl歴2ヶ月ほどの厨です。
0006名無しさん@お腹いっぱい。02/02/24 22:29ID:???
>このCGIのメモリ負荷
?
0007名無しさん@お腹いっぱい。02/02/24 22:34ID:???
>>6
……すみません、「メモリ使用量」です。
SCVじゃなくてCSVだし……。
鬱死
0008名無しさん@お腹いっぱい。02/02/24 22:44ID:???
>5
使ったことないけど,このモジュールどう?
http://search.cpan.org/search?dist=Win32API-Resources-0.06-PPM
0009名無しさん@お腹いっぱい。02/02/25 00:27ID:R6P89Fly
野球ヲタワラタ

http://ime.nu/www.baseball-lover.com
0010名無しさん@お腹いっぱい。02/02/25 01:05ID:???
>>9 スパム
0011名無しさん@お腹いっぱい。02/02/25 05:18ID:???
>>8
試してみます。ありがとうございました。
0012名無しさん@お腹いっぱい。02/02/25 13:12ID:NWj5gfpZ
あるホームページから、フォームアクションでCGIを起動し、
そん結果を、別の新しい窓に表示するようにするには、
何をどうすれば良いですか。
0013名無しさん@お腹いっぱい。02/02/25 13:17ID:???
>12
はあ?
0014名無しさん@お腹いっぱい。02/02/25 13:23ID:l+IIkoIf
>12
質問する場所を間違えました。すみません。
0015名無しさん@お腹いっぱい。02/02/25 17:23ID:???
age
0016出来の悪い子02/02/25 17:41ID:KjItHBP9
前スレの出来の悪い子です

ヒントありがとう
まだちゃんと動作していないが出来が悪いなりに頑張ってみるわ

ありがとうございます。
0017名無しさん@お腹いっぱい。02/02/25 18:01ID:???
>16 
がんばれ〜
0018名無しさん@お腹いっぱい。02/02/25 23:18ID:???
場違いかもしれませんが
perlでcgiを作るための解説をおこなっているwebサイトを探しております。
どこが、ここはすごくいい。と思うサイトがあれば教えてください。
自分の環境はwin98です。
あと、初心者ですのでできれば初心者用にかかれた解説のほうがいいです。
0019名無しさん@お腹いっぱい。02/02/25 23:23ID:???
俺は、

とほほのperl入門->
どこか忘れたけどモジュールの使い方のページ->
perlmanj

と読み進めた。とほほはCGIについての解説もあるしおすすめ
0020名無しさん@お腹いっぱい。02/02/25 23:24ID:???
>18
http://www.google.com/search?as_q=perl+cgi+%8F%89%90S%8E%D2&num=100&btnG=Google+%8C%9F%8D%F5&as_epq=&as_oq=&as_eq=&lr=lang_ja&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
0021名無しさん@お腹いっぱい。02/02/25 23:28ID:???
>>19
とほほですか。ありがとうございます。読んで見ます!

>>20
どうもです〜
0022名無しさん@お腹いっぱい。02/02/26 13:33ID:???
とてもじゃないが初心者が質問する雰囲気じゃないな
0023名無しさん@お腹いっぱい。02/02/26 15:57ID:6ZaEzTsa
>>22
なんでだ?、このやろう
0024名無しさん@お腹いっぱい。02/02/26 16:18ID:oAR1gQdG
質問です。
CGIからファイルのパーミッションを変更することってできますか?
具体的には644のファイルを666に変更したいんですが…。
やっぱり無理でしょうか。何か抜け道はないものか。
0025名無しさん@お腹いっぱい。02/02/26 16:19ID:???
>24
chmod();
0026名無しさん@お腹いっぱい。02/02/26 16:26ID:oAR1gQdG
>>25
それは試したんですが無理でした。

こんなログを発見…。あんまりスマートじゃないなぁ。
http://tohoho.wakusei.ne.jp/lng/199905/99050165.htm

原理的に無理なのだろうか。
0027名無しさん@お腹いっぱい。02/02/26 16:44ID:???
とほほの掲示板意外とレベル高いよね
0028名無しさん@お腹いっぱい。02/02/26 16:48ID:???
2chの連中は煽りは達者だがレベ
0029名無しさん@お腹いっぱい。02/02/26 17:09ID:???
とほほ:厨房質問に手とり足とり答えてやる
2ch:厨房質問に煽りで返す

これじゃ>27や>28が逆上するのも仕方ないな。
まぁおまえらはとほほで質問してなさいってこった。
0030名無しさん@お腹いっぱい。02/02/26 17:15ID:???
>24
そもそも君に権限がないファイルはパーミッション変えられない。
また、SuEXECじゃないスクリプトはnobodyなんかで動いているから、
最初から書き込み権限がないファイルは変えられない。
そもそも、これはWebProgな質問ではないような気もするがそれは黙認。
もんだいは、/etc や /var あたりにおいたしようとしてないか?
ってことか?
0031名無しさん@お腹いっぱい。02/02/26 18:22ID:ntDTlW+c
>>24
パーミッションを変更する予定のファイル、ディレクトリを、CGIが実行
されるときの権限(nobodyとか)にしておけばオッケーだよー。
00322602/02/26 20:50ID:oAR1gQdG
房ですいません。

>>30
オイタしようってんじゃなくて、
Webエディタみたいなものを構築してるんです。
アプされたファイルを書き換えれる奴。

666のファイルは難なく書き換えできるんですが、
デフォルトの644はもちろんダメ。
全部FTPで666に設定するのは何かと不便だし、
CGI側から変更できる方法はないかなぁ、と。

>>31
これはもちろんFTPで事前に変更しておく、ってことですよね?
(nobodyやら何やら、その辺にはほとんど知識ないんで調べてきます…。)
0033名無しさん@お腹いっぱい。02/02/26 21:12ID:???
>>31
setGIDとかな。

ディレクトリに実行権限与えるのは・・・無意味か。
0034名無しさん@お腹いっぱい。02/02/26 21:13ID:???
>>32
FTPクライアントにケチつけるなら自分で作ればよかろう。
HTTPの次くらいに簡単だ。
0035名無しさん@お腹いっぱい。02/02/26 21:16ID:???
>34
まぁ一番簡単なのが、ネット使うのやめちゃう事だね。
00362602/02/26 22:01ID:oAR1gQdG
ちょっと勉強してきました。

まとめ
・FTPで作成したファイルの所有者はユーザー。
・だから、nobody権限で動くCGIではパーミッション変えられない。
・ならばCGIをユーザー権限で動かせばいい! → suidperl
・CGIのパーミッションを4755にすればsuidが効く!

でも、4755ってtelnetじゃないと変えられない?
また詰まった。

参考にしたページ:
ttp://x68000.startshop.co.jp/~68user/webcgi/permission.html
http://www.google.co.jp/
0037名無しさん@お腹いっぱい。02/02/27 01:58ID:???
>>36
意味分からんけど、ビット立てるだけならFTPでもTELNETでも
CGIからでも出来るだろchmod4*** FTPクライアントのカスタムコマンド
とか調べれ
後suidperlは若干挙動が違うんで(セキュリティ絡み -Tスイッチ)調べる様にな
0038名無しさん@お腹いっぱい。02/02/27 07:25ID:DxoLEIHk
たぶんとんでもない大ポカか勘違いだと思うんですが、
一晩延々悩み続けてるので、誰かサクッと蒙を開いてくれると嬉しいです。

これ、ディレクトリ階層動いた途端にopenに失敗するんですけど
なんででしょう?

use File::Find;

finddepth(\&wanted, '.');
exit;

sub wanted {
    my $name = $File::Find::name;
    
    print $name, "\n";
    open(IN, $name) or die;
    close(IN);
    
#    open(IN, "./test/hoge.h") or die;    # これは動く
#    close(IN);
}

% tree.pl
./tree.pl
./test/hoge.h
Died at tree.pl line 10.

0039わかりません02/02/27 11:33ID:/Q61BdR8
if($i_photo_chk eq 'url'){
@photo_urls=("$i_photo_url1","$i_photo_url2","$i_photo_url3");
foreach(@photo_urls){
if($_ ne ''){
if($_ =~ /^http.*jpg$/){
$i_comment = "$i_comment<br><IMG src=\"$_\">";
}else{
&print_error("写真URLの入力が正しくありません。注意&解説を参照して確かめてください。<br>Macintosh環境でも拡張子(.jpg)をつけて下さい。");
}


すみません。
↑ここらへんで拡張子JPGだけしか選べなくなってるのを、gifも選べるようにしてあげたいんですが、
どうしたらいいですか?つまり、JPGとGIFを認めてあげたいんですが・・・。
エラーばっかりでわけわかめです。
誰か教えて下さい。お願いします。
0040名無しさん@お腹いっぱい。02/02/27 11:35ID:???
>>39
スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0041わかりません02/02/27 12:00ID:/Q61BdR8
逝ってきます!
0042名無しさん@お腹いっぱい。02/02/27 12:47ID:Sg/A5twO
お忙しい中すみません。
http://www.e-words.ne.jp/
にあるような、先頭文字での見出し(A B C D ・・・)による
検索ってどのようにするのでしょうか?

もしかしてログファイルに先頭の文字をひとつずつ
手動入力しなくてはならないのでしょうか・・・
0043名無しさん@お腹いっぱい。02/02/27 12:50ID:???
>>42
$sata =~ /^$sentou/;
0044名無しさん@お腹いっぱい。02/02/27 13:45ID:???
>>38
お、私も一瞬悩みました。
で、カレントディレクトリが変更されてるんじゃないかと思って、
perldoc File::Find してみたら、その通りだそうです。

You are chdir()'d to $File::Find::dir when the function is called.

だってー。
00453802/02/27 17:02ID:???
>>44
ああああ、やっぱり大ポカだった(笑)。
open(IN, $_) or die;
に変えたらサクッと動きました。ありがとー! 一生恩に来ます。
00464202/02/27 17:43ID:Sg/A5twO
43さんありがとうございました。
やはり手動入力が一番速いのかな、、、
0047 02/02/27 23:55ID:KPo4U5H6
すみません。
JAVAスクリプト、JAVAをOFFにしてアクセスした人に、
「JAVAをONにしてください」と表示して、
アクセスさせないためのス8クリプトを、教えてください。
よろしくおねがいします。
0048名無しさん@お腹いっぱい。02/02/27 23:56ID:???
>>47
<NOSCRIPT>Java on plz</NOSCRIPT>
00494702/02/28 00:04ID:Xg1/i20o
ありがとう!

ええと、
JAVA SCRIPTの場合はどうなるのでしょうか?
ありがとうございます。
それと、
「JAVA、(スクリプト)をONにしてください」
と表示させたいのですが、どうしたらよいでしょうか?
掲示板にその機能を追加するには、サブルーチンにすればよいのでしょうか?
どうもありがとうございます!
0050名無しさん@お腹いっぱい。02/02/28 00:06ID:???
>>49
あんた、CGI組んだこと無いだろ。
もしかしたらHTML書いたこと無いだろ。
0051 02/02/28 00:12ID:Xg1/i20o
49さん、レンタルしか使った事が無いのです。
htmlで、それを表示させるように書いたあと、
そのあと、JAVA OFF で相手を飛ばした時にどうしたらよいのでしょうか・・。
0052名無しさん@お腹いっぱい。02/02/28 00:13ID:???
>>51
CGIわかってない奴には説明が出来ない。
意地悪ではなく必然的に。
0053名無しさん@お腹いっぱい。02/02/28 00:18ID:Xg1/i20o
わかりました・・。

それでは最後に、コンパイルの遣り方を教えてください・・。
JAVAのソフトをダウンロードして設置する事は、
「JAVAを理解していないけど、CGI、PERLは完全に理解している」
人には可能でしょうか?
コンパイルは、コンパイラを使うだけなので、
JAVAを解っていなくても出来るでしょうか?
(PERLとかを理解していればです。)
よろしくご回答お願いします。
レス感謝であります。
0054名無しさん@お腹いっぱい。02/02/28 00:19ID:???
>>53
何を訳のわからんことを・・・。
0055エフェドリンながヰ02/02/28 00:21ID:lx9+LUUJ
どうでもいいが、これ読めば問題解決だろ。
http://www.puchiwara.com/hacking/
韓国バージョンも出るらしいし。
0056名無しさん@お腹いっぱい。02/02/28 00:23ID:Xg1/i20o
つまり、
JAVAアプレットのソフトを設置するのに、
「コンパイル」という作業があった時に、
JAVAを理解していない人(但しPERLなどは理解している)に、
設置は可能でしょうか?ということです。;
宜しくお願いします。
0057手まん02/02/28 00:25ID:micBAvGr
レンタルサバとかでさ、
使えるモジュール調べるにはどうしたらいい?
一覧とかだせんかね?
0058名無しさん@お腹いっぱい。02/02/28 00:26ID:???
素人の「つまり」ほど要点がまとまっていないものはない
0059名無しさん@お腹いっぱい。02/02/28 00:26ID:???
>>56
はぁ。。。
0060手まん02/02/28 00:27ID:micBAvGr
>>56
いくらなんでも、そのくらい出来るべ、
アップレットだろ、変わったクラス使ってないだろ、
サーブレットになると、色々めんどいけどな、
0061名無しさん@お腹いっぱい。02/02/28 00:27ID:Xg1/i20o
すみません。
JAVAアプレットのプログラムをコンパイルして設置する時、
JAVAアプレットを理解していない人に設置は可能なのでしょうか?
よろしくおねがいします。
0062手まん02/02/28 00:29ID:micBAvGr
>>61
だいジョブ、できる、できる、
問題無い、
駄目だったら、漏れがやってやる、
金取るけど、
時給1万だけどな
0063名無しさん@お腹いっぱい。02/02/28 00:29ID:???
>>61
=日本語を理解出来ていませんが私は手紙を出せるでしょうか?
0064 02/02/28 00:30ID:Xg1/i20o
ありがとうございます。
ついでに、掲示板のソースから、
JAVAアプレットの仕掛けがあることを解らないように隠すには、
どうしたらよいのでしょうか?
宜しくお願いします。
0065名無しさん@お腹いっぱい。02/02/28 00:31ID:Xg1/i20o
>63さん

手紙は、日本語じゃなくても出せますよね・・説明お願いします。
自給1万ですか・・。
全部込みで5000円ならどうでしょう。
0066名無しさん@お腹いっぱい。02/02/28 00:32ID:???
ネタは止めて欲しいなあ。つまんないし。
0067名無しさん@お腹いっぱい。02/02/28 00:32ID:???
>>64
前来たIPアドレス抜き野郎か。

みんな放置。さんざん荒らしやがって。
なんかレベルの低いのが混ざってると思ったらあいつだったか。
0068名無しさん@お腹いっぱい。02/02/28 00:34ID:???
>>49
http://sound.jp/jun88/java/myjjava.html
の「強制ジャンプ」がいんじゃない?JavaスクリプトがONの人だけ、
どっかのページにジャンプできる。
Offの人は、そのページに取り残されたまま。

次に、JavaがONの人だけ飛ばしたい場合は、
強制ジャンプするアプレットを貼っとけばいんじゃない?
JavaがOffの人は、そのページに取り残される。

組み合わせるってーと、Javaスクリプトで強制ジャンプするアプレットの
タグを出力すればいんじゃないでしょうか。
0069名無しさん@お腹いっぱい。02/02/28 00:35ID:???
>>68
放置ですよ。
00706802/02/28 00:36ID:???
>>67
あうぅ一歩遅かった。マジレスしちゃったよー・・・
ちなみに、前スレどのへんですか?
0071名無しさん@お腹いっぱい。02/02/28 00:39ID:Xg1/i20o
ありがとうございました。
0072名無しさん@お腹いっぱい。02/02/28 00:40ID:???
>57
@INCを順番に readdirで見ていくとか。
File::Findとかモジュール使えばもっと簡単にできるかも。
0073手まん02/02/28 00:46ID:micBAvGr
>>57
もよろしく頼むよ。
しっかしここ、すっげぇ〜イキヨイであがってくなぁ〜
まだまだPerlの需要ってあるみたいだなぁ〜
0074名無しさん@お腹いっぱい。02/02/28 01:01ID:???
>>73
>イキヨイ
勢い。

>まだまだPerlの需要ってあるみたいだなぁ〜
その通り。
0075 02/02/28 01:23ID:???
http://sound.jp/jun88/
0076名無しさん@お腹いっぱい。02/02/28 02:38ID:???
perlほど簡単で使い勝手のいい言語なら当分生き残るだろ。
正規表現の入門にもちょうど良いわい。
0077名無しさん@お腹いっぱい。02/02/28 09:55ID:???
>>76
RE-C(正規表現C)が出たら迷わず乗り換えるw。
0078名無し02/02/28 18:12ID:SOksZdMX
掲示板を作りたいんだけど、ログファイルに
書き込むルーチンみたいなのが分からないので誰か教えてください。
0079名無しさん@お腹いっぱい。02/02/28 18:13ID:???
>>78
それを考えるのがおもしろい。
■ このスレッドは過去ログ倉庫に格納されています