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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん04/10/07 23:23:08ID:kiEzDCJF
Perlのコーディングで困ってる人のスレです。

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

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

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

過去ログやお勧めサイトは >>2-10
0866nobodyさん04/11/22 04:23:59ID:???
"?"を使えって事だろ レスがシンプルなだけで要望には応えてないが
0867nobodyさん04/11/22 04:47:42ID:???
あのレスだけで理解できたらここで質問なんぞしない希ガス
0868nobodyさん04/11/22 05:42:53ID:/gdSyseW
>>847
>>852

>print S "GET $page HTTP/1.0\r\nHost: $host\r\n\r\n";

hostを入れたら違う反応が返ってきて次のメッセージが表示されました。

HTTP/1.1 200 OK Date: Sun, 21 Nov 2004 20:36:26 GMT Server: Apache/1.3.27 (Unix) Last-Modified: Thu, 11 Nov 2004 02:34:45 GMT ETag: "718102-ddd-4192cfc5" Accept-Ranges: bytes Content-Length: 3549 Connection: close Content-Type: text/html

ただ、期待したトップページは相変わらず表示されませんでした。
このメッセージからソケットが使えるって判断できるでしょうか?
0869nobodyさん04/11/22 06:30:29ID:/gdSyseW
>>868
トップページにはフレームを使っているので、表示されないみたいです。
取得したいログファイルを指定したら、見事に表示されたので、ソケットは使えることは確認できました。

ただ、次の応答メッセージが頭にくっついてくるので、これを取得しないようにすることはできるでしょうか?

HTTP/1.1 200 OK Date: Sun, 21 Nov 2004 20:36:26 GMT Server: Apache/1.3.27 (Unix) Last-Modified: Thu, 11 Nov 2004 02:34:45 GMT ETag: "718102-ddd-4192cfc5" Accept-Ranges: bytes Content-Length: 3549 Connection: close Content-Type: text/html
0870nobodyさん04/11/22 06:48:45ID:???
>>854
>>859の方法だと、システムシェルを利用するからセキュリティに注意。
0871nobodyさん04/11/22 07:06:38ID:???
>>869
ヘッダの最後は
CRLFCRLF(最低限LFLF)
になってるので、取得した後、そこまでカットすれば問題ないっしょ。
0872nobodyさん04/11/22 07:20:47ID:/gdSyseW
>>871
取得した後で加工してカットするということですか?できれば、取得時にカットしたいのですが、
不可能であれば、最終手段はそうするしかないですね。
0873nobodyさん04/11/22 07:48:05ID:???
>>872
<>で読むなら、空行が出るまで別の変数に入れておくとか、空読みするとか。
あと、socketとconnectのエラー処理をした方がいいよ。
0874nobodyさん04/11/22 08:44:18ID:???
LWP使ったほうが楽じゃないかと...
0875nobodyさん04/11/22 10:28:03ID:/gdSyseW
>print S "GET $page HTTP/1.0\r\nHost: $host\r\n\r\n";

素人考えで申し訳ないですが、GETのところでオプションなどをつけてその応答メッセージを
出さないようにすることってできないものですかね?

  HTTP/1.1 200 OK 〜〜text/html 取得したログファイルの内容〜

取得した内容は↑のようになっていて、応答メッセージと取得したログの間は半角スペースと
なっています。

応答メッセージを取得時にカットできない場合、取得後にカットするわけですが、シンプルに
カットするには、どういう方法があるでしょうか?perl初心者なもので、たびたびすみません。
0876nobodyさん04/11/22 11:44:54ID:???
>>875
チミはx68userのページ見て勉強してから出直すといい。
http://x68000.q-e-d.net/~68user/

別の解法: 他の人も言っているがLWPというチミがやりたいことをそのまま提供している
モジュールがあるので、そっちを使うと簡単。
「原理を理解しなくても目的を達成できりゃいい」という事ならばこっちをすすめる。
0877nobodyさん04/11/22 11:48:07ID:???
>>859
初心者にセキュリティホールのある方法教えるな。クズ。
087880604/11/22 11:50:53ID:dylfkRdn
>829さん
print "Content-type: image/jpeg\n";
print "Content-length: $filesize\n\n";
と書いてみました。swf側でファイルサイズを取得できて大喜びだったんですが、
jpg画像が途中から壊れて表示されるようになってしまいました。

>(一旦テンポラリファイルを作らないとだめかも知れないけど)

すみません。調べてみたのですが、ちょっと意味が。。。
0879nobodyさん04/11/22 12:00:44ID:???
>>878
もしContent-lengthをつけただけでそうなったのなら、
$fileseizeの値がおかしい可能性が高いな。
088080604/11/22 13:03:45ID:dylfkRdn
>879さん
レス、ありがとうございます!

print "Content-type: image/jpeg\n";
print "Content-length: 100000\n\n";

とかやってみたのですが、やはり画像が壊れて表示されます。
(こんなことしてはいけないのかな。。。)
088180604/11/22 13:14:51ID:dylfkRdn
>879さん
できました!!
やはり値がうまく入っていないだけでした。

ただ
($width, $height, $filesize)= $i->Get('width', 'height', 'filesize');
と値をとっただけなのでリサイズ前のファイルサイズがとれているだけなのですが。
テンポラリファイルとは一度このファイルをtmp.jpgとかにしてそのファイルサイズを
を測らなくてはならないという意味だったのでしょうか?
0882nobodyさん04/11/22 14:04:38ID:/gdSyseW
>>876

http://x68000.q-e-d.net/~68user/
x68userのページで、「HTTP クライアントを作ってみよう」という記事を見ましたが、
どうもヘッダを除いてボディだけを出力するというのはできなさそうに感じました。

LWPについてはx68userのページで一通り見ましたが、掲載されていないように
見受けられるので、いろいろ検索してそれらしい解説ページを見ましたが、
使用方法について内容の濃いページを見つけられませんでした。

一般的にどのサーバーにもLWPのモジュールが入っているのか?、当方のレンタル
サーバーでLWPは使えるのか?といった辺りからよくわかりません。
(見当違いなことを言っていたらごめんなさい。)

結局、ソケットでヘッダー(応答メッセージ)も含めてファイルを取得し、文字列操作
して、わざわざいらない部分を取り除かなければならないことになりそうです。

同じサーバーならopenしてファイルを参照できるのに、他サーバーのファイルを
参照するだけで、えらく苦労しています。
0883nobodyさん04/11/22 14:15:38ID:???
>>882
ボディだけ欲しいならHTTP/0.9で取れるが、HTTP/0.9はHostを送れないのでチミのホストでは駄目。

でも、ヘッダー読み飛ばすのなんか楽勝でしょ。
http://x68000.q-e-d.net/~68user/net/http-2.htmlだと38-41行
0884nobodyさん04/11/22 14:30:16ID:C0NQJmHQ
サーバーに新しいメールアカウント(例:abc)を作り
そこに添付されてきた画像ファイルをCGIで読み込み
メインアカウント(例:main)内にあるフォルダに保存させています。

読み込むCGIをgetmail.cgiとするとこれを手動で実行すると
問題なく動作するのですが
crontabを用いて自動実行させると添付ファイルの保存がされません。
crontabによりgetmail.cgiは動作しているものの
保存のみがされないようです。

0-59/2 * * * * cd /home/sites/www.xxx.jp/web && /home/sites/www.xxx.jp/web/mailget.cgi
で実行させています。
環境はRed Hat Linux 7.3
Apache 1.3.27
Sendmail 8.11.6
です。ちなみに、別のレンタルサーバー(FreeBSD)では動作していました。
原因がどこにあるのかご教授ください。
0885nobodyさん04/11/22 14:31:03ID:???
>同じサーバーならopenしてファイルを参照できるのに、他サーバーのファイルを
>参照するだけで、えらく苦労しています。

いやそれはそういうモノだ
Perlコーディング以前の「コンピュータが動くしくみ」とかいう次元の問題として
0886nobodyさん04/11/22 14:54:17ID:/gdSyseW
>>882
ひとまず、ご指摘の箇所を適用してヘッダーを読み飛ばし、ボディだけ抽出できました。
ありがとうございました。
0887nobodyさん04/11/22 15:54:59ID:???
>>877
じゃあ初心者にセキュリティホールの無いやり方を教えてみろクズ。
何も提案できない奴が偉そうな事抜かすな。
0888nobodyさん04/11/22 15:58:18ID:???
>>884
実行ユーザ名・使用するファイルのパミッション・使用する環境変数等々
チェックすることはいっぱいあるよ。
んでも、エラーを適切に処理してればどこでコケたか分かるでしょ?

>>887
初心者自体がセキュリティフォールです。はい。
0889nobodyさん04/11/22 15:59:51ID:???
ふぉーる
0890nobodyさん04/11/22 16:04:25ID:C0NQJmHQ
>>884です。
>>888さん、ありがとうございます。
色々チェックしましたがイマイチ解りません。
ブラウザから実行した場合は正常なのですが
crontabで自動実行した場合のみ保存がなされません。
調べたところ、添付ファイルの取り込みも問題ないようで
問題なのはopenして書き込む部分が実行されていないと言うことです。
ファイルの所有者とグループが違うのかと思ったのですが
これらは変更したりできるのでしょうか?
0891nobodyさん04/11/22 16:06:56ID:???
>>888
検索方法の話であって初心者云々関係ねーし。おまけにフォールだし。
0892nobodyさん04/11/22 16:12:24ID:???
子供達を責めないで(by デスラー)を思い出すな。
「私は子供に生まれないで良かったと、胸をなでおろしています!」っての。
>>888は初心者に生まれないで良かった胸をなでおろしてるんだろうな。
0893nobodyさん04/11/22 16:14:31ID:???
次スレ案
【初心者は】Perlコーディング初心者質問スレ Part 39【セキュリティフォール】
0894nobodyさん04/11/22 16:15:46ID:???
#! c:/perl/bin/perl

print "Content-type: text/plain\n\n";
print "Hello Perl !";

今日からPerlをはじめまして、本どうりにこれを打ち込んで、表示さしてみると
ファイルを開く、保存のダイアログボックスが表示されます。開くを押すと
メモ張にHello Pealと表示されます、本ではブラウザ上に表示されると
なっているのですが、違うCGIをためしてみるとちゃんとブラウザに表示されます。
本の付属のサンプルでやってもこれだけは、安心できる発信もとからの・・・
ファイルを開く 保存・・がでてブラウザに表示されません。これだけ
なぜかこうなります。
無視して、これは飛ばして次のCGIからやったほうがいいのでしょうか?
原因がわかるかたぜひおしえてください。
0895nobodyさん04/11/22 16:16:36ID:???
>>887
とりあえず、$keywordをサニタイズするようにぐらい書いておけ
0896nobodyさん04/11/22 16:30:35ID:???
うーん、grepのシェル起動はやっぱマズイ気がするな。
$keywordが実行されないようにしないと。
バッククォートは確実に殺しとけ。
0897nobodyさん04/11/22 16:36:59ID:???
そもそもgrep使っても1ファイルずつひらいて舐めるのは
かわらないのでperlの中だけで完結した場合に比べて
劇的に処理が軽くなるとはとは思えないのだが。
089888804/11/22 16:58:04ID:???
(((η)
  | |       (っ))) ヒャッホー! オレ様がスレタイに!!
  | |       //
  |∧_∧ // >>890
 (´∀`*//   cgiの実行ユーザ名でcrontab -eを実行してないのでは?
  l     /    その場合ならパーミッション関係でエラーがでて
           保存できないこともありうる。原因を探らないと。
0899nobodyさん04/11/22 17:45:56ID:???
open() 関数の戻り値が false だったら $! を表示させてみる、とかな
0900nobodyさん04/11/22 17:51:31ID:TZImgkmI
sendmail時のことで質問です。

subjectはちゃんとmimeエンコードしてるのですがfromに日本語を埋め込む時にも
mimeエンコードする必要がありますか?

JISでそのまま書いても駄目ですよね?

from: "送り先の人間の名前" <hoge@test.com>

みたいになってますがどうすれば大方のメールソフトで問題なく動作するでしょうか?
0901nobodyさん04/11/22 18:11:55ID:???
>>887
クズのくせに威勢がいいな。
特別に教えてやろう安全なパイプの使い方だ。二度と初心者に穴コード教えるなよ。ヘッポコ。

$pid = open(IN, "-|");
if (!defined($pid)) {
die "cannot fork";
} elsif ($pid == 0) {
exec('grep', $keyword, 'file') || die 'grep';
}

>>900
MIMEエンコードすりゃいいだけだろ。何が聞きたいんだ?
0902nobodyさん04/11/22 18:18:31ID:???
>>894
.cgiファイル?
まあどっちにしろ
__END__を忘れてないか
あとどんな本だ?
0903nobodyさん04/11/22 18:19:47ID:???
>>894
ここはコーディングの質問スレなので、それ以前の方はお引き取りください。
0904nobodyさん04/11/22 19:16:13ID:4/apYG7/
>>901
そんなんで虚勢張られてもなぁ・・・
空しくならない?
0905nobodyさん04/11/22 19:19:21ID:???
後出しじゃんけん キタ━━━━(゚∀゚)━━━━ッ!!
0906nobodyさん04/11/22 19:34:33ID:???
っていうか悪意のある入力値のサニタイズとは関係ない気が。
0907nobodyさん04/11/22 20:17:07ID:???
外野だけど$keyword = quotemeta($keyword)じゃだめ?
0908nobodyさん04/11/23 01:17:07ID:???
バッククォートとシングルクォートだけで良いと思うけど。
()もマズイか?
いずれにせよ、パイプの使い方云々って話じゃなくて。
0909nobodyさん04/11/23 01:23:12ID:nMfYIywn
あのね、僕ちゃん達、何のためにサニタイズするの?
shが余計な解釈して、コマンド実行されると困るからでしょ。
>>901の方法でパイプ使えばshは経由しないから、安全なの。
0910nobodyさん04/11/23 02:23:51ID:7PvclRNn
>>901乙であります(pgr
0911nobodyさん04/11/23 02:54:05ID:???
まぁまぁ、まぁまあ、

マーライオン       , ―‐ 、 
             /r‐' ,ェェr‐..、
               | l |   ____Y)........
               | l ヽ  ┴‐┬'''''''''' ::::.........
               | l  l `ー‐1      ::::::::.......
             7レヘ!    /        ::::::::::::.....
             l |. |    /           :.:.:.:::::...
             /7ーー7777!             :.:.:.:::::....
            T--l⌒ヽ{ l               :.:.:.:.::::::...
               |vv'レ⌒!'ー!                :.:.:.:.::::::...
              |vv'ヽソー1                 :.:.:.:.::::::.
           _ヽVVVー7__               :.:.:.:.:::::..
         ,〜〜〜〜〜〜〜ヽ  ヽ、             :.:.:.:.:.:..::..
        ∠二二二二⌒二二二二二二ユ            :.:.:.:.:.::::::...
0912nobodyさん04/11/23 07:24:42ID:???
>>881
出力するデータのサイズを出力しないとだめだよー。

>>894
・IEを投げ捨てて他のブラウザを使う。
・おまじないとして最後に"/"を付ける。
・Windows XP SP2にして、IEをレスポンスヘッダに従うように設定する(できるらしい)。
・HTMLで出力する。
原因はIEの仕様。
0913nobodyさん04/11/23 08:01:40ID:???
894は拡張子がcglとかなんだってば
0914nobodyさん04/11/23 09:12:03ID:???
>>913
> ファイルを開く、保存のダイアログボックスが表示されます。開くを押すと
> メモ張にHello Pealと表示されます、
これから察するに、CGIとして動作していると思うが。
0915nobodyさん04/11/23 09:31:30ID:???
>>894
CGIとして動作しているのはたしかだが
ダイアログを出したくないんだったらこうしなされ。

x print "Content-type: text/plain\n\n";
o print "Content-type: text/html\n\n";
0916nobodyさん04/11/23 10:16:50ID:???
>>909
ポカーン。

$keyword に

; rm -rf *;

って入れると実行されちゃいますが?
死ねよキチガイ。
0917nobodyさん04/11/23 10:25:43ID:???
みんな冷静になって>>894を読んでみろよ。
print "Hello Perl !";
なのに「Hello Peal」って表示されるんだぞ。
Perl自体のバグでは?
0918nobodyさん04/11/23 11:00:08ID:???
>>916
>>909ではないですが、それが実行されるOSを教えてくれませんか。
FreeBSDで確認できなかったので。

それから、一応貼っておきますね。

CGIプログラミングとセキュリティ
http://www.ansi.co.jp/tech/cgi/security/programming.html
> また、以下のように引数が2個以上の exec と組み合わせるとメタキャラクタの解釈が行われない。
> open GREP, "-|" or exec "/usr/bin/grep", "-e", $CGI{str}, "/path/to/data/file" or die;

perlsec - Perl security
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsec.html
> open(FOO,"echo $arg|"); # Not OK, but...
> open(FOO,"-|")
> or exec 'echo', $arg; # OK

# 今のperlsecでは、この方法もAlso not OKにされています。
0919nobodyさん04/11/23 11:08:09ID:nMfYIywn
>>916
顔真っ赤にして、嘘付くなよ。ヘッポコ

実験すれば実行されないことは簡単にばれちゃうのに、事実を捻じ曲げてまで絡んでくるとは
そんなに馬鹿にされたのが悔しいのかな?
でも、実際馬鹿なんだからしょうがない。親を恨んであきらめることだ。

$keyword=';rm -f *';
$pid = open(IN, "-|");
if (!defined($pid)) {
die "cannot fork";
} elsif ($pid == 0) {
exec('/bin/echo', $keyword, 'file') || die 'grep';
}
while(<IN>) {
print $_;
}
0920nobodyさん04/11/23 11:11:35ID:???
>>919

grepに失敗するだけでrm -rf は実行されるぞ低能
0921nobodyさん04/11/23 11:13:10ID:???
あとrm -rf *;

だ。;が抜けてる。*fileだったらそんなファイルなけりゃ何も削除されん罠
0922nobodyさん04/11/23 11:27:41ID:nMfYIywn
>>920
やってから言えよ。ヘッポコ。行末の;を入れたって実行されねーよ。
破壊的な馬鹿だな。
0923nobodyさん04/11/23 12:00:00ID:???
気になったから試してみた

"test.pl" [New File] 12 lines, 213 characters [E]
[***@***** test]$ chmod +x test.pl
[***@***** test]$ ls
aaaa ahie aisjrioe iruiet test.pl*
[***@***** test]$ ./test.pl
;rm -f *; file
[***@***** test]$ ls
aaaa ahie aisjrioe iruiet test.pl*

コードは>>919に;いれた奴
0924nobodyさん04/11/23 12:24:02ID:???
>>916は逃亡か?
perlは奴のようなヘッポコでもそれなりのコードをでっち上げる事が出来てしまうので、
「俺ってできるじゃん」と勘違いしてしまったのだろう。

勘違いして玉砕してしまった>>916に「伝説のヘッポコ」のコテを贈ろう。次からはこのコテで出て来い。ゲラゲラ
0925伝説のヘッポコ04/11/23 12:38:20ID:???
         │ト、l、 /´, '`⌒'´ `ヽ: : .
          ヾヽ!lV/ / ,/ /  ,' ハ、: .
       ,ィニ≧ゝレ' / /  ,./   / , ハ : : .
      く<-‐7´ _」] l l/_,∠/   / / / い : : .
        ̄ノ/: :f r'l l /レ'/、_/‐ト'、/l| li l : : : : .
      . : {ハ : :|{(l|y==ミ   _ノ、/ソリ ll | : : : : :
      : : : :ヽヽ: :|、lハl、゙      ⌒ヾlノリ ll l : : : : : :
      : : : : : : : : V\ヽ、 `ー  ゛ノルんイリノ : : : : : :
      : : : : : : : : : ,.--、_ハ`−r=ニ--、′ノ. : : : : : : :
      : : : : : : : : /  /-ョロ'ヲ´   i l : : : : : : : : : :
      : : : : : : : 〈  ,ハフ'兀「     ! } : : : : : : : : :
      : : : : : : : : ヽ,   ト{‐lハ. ヽ ' ノ : : : : : : : :
0926nobodyさん04/11/23 13:14:57ID:7PvclRNn
どうせここにいる連中は俺より低脳なんだから、
黙って頭下げて俺の靴でもなめてりゃいいんだよカスどもが(pgr
0927nobodyさん04/11/23 14:23:34ID:???
↑ 締め付けチカンビーム発射!!
0928nobodyさん04/11/23 14:24:02ID:nMfYIywn
その中で最下層に位置してるのが>>916である事は間違い無さそうだ。
0929nobodyさん04/11/23 15:22:41ID:???
おやおや、めずらしく荒れてますな。
そろそろ次スレの頃合かの。
0930nobodyさん04/11/23 16:09:24ID:???
初めまして。gzipに関する質問です。
gzipの利点は「負荷を削減する」「転送量を減らす」というのは分かりましたが、早さの面ではどうなりますか?

私としては、転送量を減らすので早くなりそうな気もしますが、ブラウザに解凍する処理をさせるので遅くなりそうな気もします。

ご回答を宜しくお願いします。
0931nobodyさん04/11/23 16:30:41ID:???
無名ハッシュに、ハッシュのスライスで値をセットしてそのリファレンスを
返すことを一度にやりたいんですけどできません。
どうやればいいのでしょうか?
0932nobodyさん04/11/23 16:40:17ID:???
PerlとPHPってどっちがいいですか?
0933nobodyさん04/11/23 16:48:03ID:???
ページ全体(例えばyahooのトップなど)を配列に取り込む方法はないでしょうか。
自分のサイトで他ページの情報を一部使いたいのです。
0934nobodyさん 04/11/23 16:48:35ID:???
>>930
自鯖でやらせるんならええけど、レンタルでやったら怒られること間違い無しであろう。
2ch閉鎖みたいに転送量でゴルァされて初めて意味がある処理ではある。
093593004/11/23 16:51:27ID:???
>>934
>レンタルでやったら怒られること間違い無しであろう。
それは何故ですか?
0936nobodyさん04/11/23 17:36:00ID:???
>>931
無名ハッシュのリファレンスを得るなら、先に得ないと無理だと思う。
で、無名のハッシュのリファレンスを得て、ハッシュスライスに値を代入にしてみたけど。

use strict;
use Data::Dumper;

my @pos = qw(msn yahoo google);
my $value = 'search engine.';
my $hash_ref;

@{($hash_ref = {})}{@pos} = ($value) x @pos;

print Dumper($hash_ref);
0937nobodyさん04/11/23 17:52:11ID:???
>>935
回線の負荷は減らせるが、逆にサーバマシンの負荷は増大する。
093893004/11/23 17:54:03ID:???
>>937
そういうことだったんですか。。負荷状況を見ながら導入を検討したいと思います。ありがとうございました。
0939nobodyさん04/11/23 20:55:05ID:???
次スレ
http://tmp4.2ch.net/test/read.cgi/kitchen/1100420247/
0940nobodyさん04/11/23 22:21:01ID:???
>>930,938
ブラウザの負荷はあまり気にしなくても良いよ。
低スペックのPCでISDNでも体感速度は速くなった。
もし、テーブルを使ったレイアウトをしているなら、
gzipよりもHTMLを変更した方が体感速度は速くなることが多い。

サーバー負荷が心配なら予め圧縮しておくと良いよ。
0941nobodyさん04/11/24 04:36:06ID:???
execでメタキャラクタを解釈させないようにすると。
でもこれじゃ>>854の言う「データディレクトリでgrepかけて、該当したファイルのみ読み込みたい」
ってのは無理だね。
0942nobodyさん04/11/24 10:14:07ID:???
結局、grepだって一つ一つファイル開くんだし
スクリプト内で一つ一つ開いてやれ。たいして負荷かわらんってオチか。
0943nobodyさん04/11/24 14:24:18ID:???
楽にやりたけりゃFile::Searcher使えって話。
0944nobodyさん04/11/24 14:55:14ID:???
こんにちは。

LWPモジュールだと、テキストデータしか取得できないと思うのですが、
指定したURL自体のスクリーンショットみたいに画像データとして取得を行う様なPerlのモジュールとかってありませんか?
もし存在すればモジュールの名前を教えてください。

こんな感じで指定したURLの画面を表示したいのです。
ttp://sea.search.msn.co.jp/preview.aspx?&q=%e5%85%89%e3%83%95%e3%82%a1%e3%82%a4%e3%83%90%e3%83%bc%e3%80%80%e3%83%97%e3%83%ad%e3%83%90%e3%82%a4%e3%83%80%e3%83%bc

よろしくお願いします。
0945nobodyさん04/11/24 15:56:51ID:???
@aaa = (['a','b','c'],['A','B','C']);

この['a','b','c']を@bbbに入れたいなんて場合はどうすればいいですか?
0946nobodyさん04/11/24 16:07:21ID:???
>>944
IEコンポーネントとか使わないと難しいんじゃない?
LWP云々の問題じゃないし
0947nobodyさん04/11/24 16:26:31ID:???
=@{$aaa[0]};
0948nobodyさん 04/11/24 17:04:09ID:???
>>944
> LWPモジュールだと、テキストデータしか取得できないと思うのですが、
取れるだろ?
094994404/11/24 17:31:19ID:???
>> 948
画面のスクリーンショットを取得できるんですか?
もう少しマニュアル読んでみます。
0950nobodyさん04/11/24 17:33:37ID:???
いや、>>944 の言いたいことは、
HTMLレンダリングしたページイメージを取得したい、
という話らしい。

>>946 の言ってるとおり、それは LWP とか「取得」とかいう問題ではなく、
LWP で取ってきたデータをローカルでレンダリングするにはどうしたら、
という話になるわけだが。

必要なデータを渡すと gecko 使ってレンダリングして
Image::Magick オブジェクトを返してくれる、
とかいうモジュールがあるといろいろ便利そうではあるが、
かなり難しそうだわなあ。
0951nobodyさん04/11/24 20:28:29ID:???
>>950
http://www.babysimon.co.uk/khtml2png/
こういうのを利用するといいんでは。
モジュールではないし、XやQt、KDEに依存するけど…。
0952nobodyさん04/11/24 22:05:26ID:???
そこのリンクにある、
http://marginalhacks.com/Hacks/html2jpg/
こっちはPerlスクリプトだね。
X+Mozilla+ImageMagickかな。
0953nobodyさん04/11/24 22:19:47ID:???
html2[jpg,bmp,png,ps etc.] でググれば結構見つかるよね。
大体がブラウザにレンダリングをさせて画面をキャプチャーするタイプ。
他にも、Windows限定だけど web制作板のCSSでイケてるかも知れないデザインサイトスレで
使っているwebnailとか。
0954nobodyさん04/11/25 00:19:16ID:???
デスクトップ環境構築してるなら、数行のShellスクリプトで済むけど。
サーバー側で使うとなると、ちょっと敷居高いんじゃないかな。
0955nobodyさん04/11/25 00:33:25ID:???
あるディレクトリ内のファイル名一覧を取得する時って、
opendir,readdirかFile::Findかどちらを使うべきだろう。
1000ファイルほどあるんですが、パフォーマンス的には変わりませんかね?
(ファイルは階層的に掘り下げる必要は無いんですが)
0956nobodyさん04/11/25 01:11:28ID:???
@array = ('aaa','bbb','ccc');
$key = 'bbb';
このような変数があるとして、$keyが@arrayの要素に存在するかどうかを
一発で判定する書き方って無いでしょうか?
0957nobodyさん04/11/25 01:12:46ID:???
(;゚Д゚)
0958nobodyさん04/11/25 01:22:03ID:???
>>956
釣りですか?
0959nobodyさん04/11/25 01:24:36ID:???
いえ、ループとか制御構文使わないで、1行ですっきり判定する方法ないかなーと・・・
0960nobodyさん04/11/25 01:27:59ID:???
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0961nobodyさん04/11/25 01:46:49ID:???
map使えば簡潔に書ける。と思うが。
0962nobodyさん04/11/25 01:50:38ID:???
ていうか連想配列でif($array{$key}){処理;}とかでいいじゃない。
0963nobodyさん04/11/25 01:56:17ID:???
>>955
単一階層なら readdir 。

>>956
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq4.html#How_can_I_tell_whether_an_list_o

${{ map { $_, 1 } @array }}{$key} ? 'exists' : 'not found';
0964nobodyさん04/11/25 02:08:03ID:???
>>963
むお!ありがとうございます!
0965nobodyさん04/11/25 08:14:06ID:???
>>956
my $count = grep{ $_ eq $key } @array;

# 中身はループだけどね。
0966nobodyさん04/11/25 08:26:21ID:???
最近CGI.pm使い始めたんだけど、もしかして重いですか?
cgi-libでReadParseして%inを取り回してた方が負荷的にも鯖にやさしい?
レス数が950を超えています。1000を超えると書き込みができなくなります。