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

Perlコーディング初心者質問スレ Part 52

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/09/15(金) 14:01:51ID:gobry0n2
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >>2-10

前スレ http://pc8.2ch.net/test/read.cgi/php/1153987463/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0002nobodyさん2006/09/15(金) 14:02:17ID:gobry0n2
関連スレ
CGI: Common Gateway Interface part 13
http://pc8.2ch.net/test/read.cgi/php/1126436361/

【Perl,CGI】参考書籍 第三版
http://pc8.2ch.net/test/read.cgi/php/1030209573/

【Perl】ファイルロック(排他処理)について語ろう
http://pc8.2ch.net/test/read.cgi/php/1024795138/

★負荷軽減対策委員会(Perl、PHP)★
http://pc8.2ch.net/test/read.cgi/php/1034645635/

CGIに依存しないPerlの話題一般/Part2
http://pc8.2ch.net/test/read.cgi/php/1030548610/

★三 【 スクリプト改造工房 PART 9 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1143834740/

【 スクリプト改造依頼スレ 】(丸投げ) part5
http://pc8.2ch.net/test/read.cgi/php/1141174205/
0003nobodyさん2006/09/15(金) 14:02:58ID:gobry0n2
ム板Perlスレより 1 of 2

[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: http://www.site-cooler.com/kwl/perl/

[本]
リャマ: http://www.oreilly.co.jp/books/4873111269/
駱駝: http://www.oreilly.co.jp/books/4873110963/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/books/4873112028/

[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.8/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
perldoc.jp: http://www.perldoc.jp/
Perldoc.com: http://www.perldoc.com/
0004nobodyさん2006/09/15(金) 14:05:07ID:gobry0n2
ム板Perlスレより 2 of 2

[モジュール]
CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/

[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm

[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0005nobodyさん2006/09/15(金) 14:16:42ID:???
次スレ
http://ex16.2ch.net/test/read.cgi/news4vip/1158297150/
0006nobodyさん2006/09/15(金) 15:47:59ID:???
>>1
s/(.*'-')o/~~otukare-/;
0007nobodyさん2006/09/15(金) 23:40:06ID:???
VIPのバカが釣りにはしゃいで喜んでいます

女子大生拉致監禁事件!?12くらい
http://ex16.2ch.net/test/read.cgi/news4vip/1158323954/

「どう見ても釣りだろ」
というと顔を真っ赤にしてレスしてくるので注意!!!
0008nobodyさん2006/09/16(土) 11:00:05ID:vjnDDSY/
chomp(@lines = <STDIN>);
@lines = sort @lines;
print "@lines\n";
がソートされたものを表示して

@lines = sort chomp(@lines = <STDIN>);
print "@lines\n";
が要素の個数を表示するのは

前者は配列をダブルクォーテーションの中で展開していて
後者はリストをスカラーコンテキストで使っているから
という解釈で正しいでしょうか?
0009nobodyさん2006/09/16(土) 11:18:12ID:????BRZ(3000)
chompの戻り値は切り落とした文字数だからね
0010nobodyさん2006/09/16(土) 11:37:13ID:vjnDDSY/
>>9
ありがとうございます。
0011nobodyさん2006/09/16(土) 22:23:36ID:???
一行にしたいなら:
chomp(@list = sort <STDIN>);
0012nobodyさん2006/09/18(月) 19:19:34ID:???
STDINに直接sort指定できるんだ。
その発想は無かった。
0013nobodyさん2006/09/18(月) 22:14:51ID:???
そりゃsortが要求するのはLISTであってARRAYじゃないしね。
普段はあんまり意識しないけど、LISTとARRAYの違いは重要。
0014nobodyさん2006/09/18(月) 22:14:58ID:???
>>12
STDIN を直接ソートしてるわけじゃなくて、
リストコンテキストで評価することでファイルの中身をソートしてるだけ。
0015nobodyさん2006/09/18(月) 22:32:44ID:???
なるへそ。
そういう動作の仕方を知ってると色々応用できるし参考になるよ。
0016nobodyさん2006/09/19(火) 06:52:45ID:???
Shift_JIS でコーディングをする場合のセキュリティについての質問です。

例えば、次のようにユーザ入力の値をダブルクォート内に代入したとします。
この時エスケープする文字列は、 & と < と > と " と ' です。

<a href="http://$hoge";>

バイナリエディタで解析した " (ダブルクォート) の 16進表記は、"22" です。
ここで、$hoge に バイナリレベルで "82" をいれてみるとどうなるかやってみました。(バイナリファイルを一般のテキストエディタで表示したときの、"・"(半角) と表示されるあれです。)
それを出力して、IE と Firefox と Opera で表示したところ、 "82 22" で 1つの不正な文字 "・"(全角) として表示され、ダブルクォートが消えうせていました。

当然、掲示板のURL欄にこういう文字列をいれられたら、それ以降のデータがダブルクォート内のものと扱われますし、
その後の投稿内容の一部が " (ダブルクォート) 外にすることも可能で、"onload" イベントなどを使った、XSS攻撃も可能になるわけです。

大手CGI配布サイトのCGIで実験してみたところ、なんと実際にXSS攻撃が可能でした。

つまり、下記の条件を満たしてるPerlには脆弱性があることになります。

・文字コードとしてShift_JISを使っている。
・ダブルクォート内に正規表現などで入力内容を規制していない文字列が代入される。
 (所謂、< とか > とか " のサニタイズをしていてもこの攻撃は可能。)
・Shift_JIS に存在しないコードを含む文字列が存在しないかの確認をしてない。
■ このスレッドは過去ログ倉庫に格納されています