Perlコーディング初心者質問スレ Part 44
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/10/17(月) 00:47:17ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0362nobodyさん
2005/11/04(金) 22:45:51ID:???http://www.ss.iij4u.or.jp/~somali/web/_ppm.html
0363nobodyさん
2005/11/05(土) 03:57:34ID:???文字列$commentがあって、
while($comment=~m//g){}を使って<tag>または</tag>を順々にマッチさせたいのです。
んでマッチしてから<tag>と</tag>のどちらがマッチ…
あ、わかった…$&で判定できるんですね…
鬱だ死のう
0364nobodyさん
2005/11/05(土) 04:13:08ID:???0365nobodyさん
2005/11/05(土) 04:14:32ID:???foreach( $comment =~ /<.*?>/g ){ print "tag = $_\n"; }
みたいに先にリストに展開するもよし
0366nobodyさん
2005/11/05(土) 23:49:03ID:???#保存ボタンが押されたらデータをファイルに保存する
if(($cgi -> param(add)) && ($cgi -> param(yomi)) && ($cgi -> param(kanji))){
open(OUT,">> $file") or die;
$kanji = $cgi -> param(kanji);
$yomi = $cgi -> param(yomi);
$data = "$kanji\t$yomi\n";
$cgi -> delete_all();
print OUT $data;
close(OUT);
}
param(add)には,submitボタンの値,yomiとkanjiにはテキストフィールドの値が入っています.
保存ボタンが押されるとちゃんと,ファイルにデータが追加されるのですが,
保存ボタンを押して,リロード(F5を押す)を行うと,データが繰り返し追加されてしまいます.
delete_all()して,Varsでもパラメータは消去されているのを確かめたのですが,
リロードすると,やはり値が繰り返し追加されてしまいます.
0367nobodyさん
2005/11/05(土) 23:53:00ID:???続き…
delete_allを行ったにもかかわらず,値が追加されるということは,どこかに値が保存されている
ということだと思いますが,それはどこにあるのでしょうか?
よろしくお願いします.
0368nobodyさん
2005/11/05(土) 23:56:09ID:???解決策はググルとたぶん見つかる
どっかで見た
0369nobodyさん
2005/11/06(日) 04:41:46ID:???0370nobodyさん
2005/11/06(日) 14:09:39ID:???$comment =~ s/<.*?>//gs;
これだけでは何か穴がありますか?
0372366
2005/11/06(日) 20:09:02ID:???以前のログを参照して,同じ投稿がないかチェックするようにして,二重投稿を防ぐようにして解決しました.
みなさんありがとうございました.
0373nobodyさん
2005/11/07(月) 11:47:17ID:92Mo7mCMDBI::Pg使用し、1度の接続で下記要件を満たすSQL文を教えて下さい。
SQLではなく、Perl+DBIのプログラミング方法で可能であれば、その方法を教えて下さい。
顧客テーブルと購入履歴テーブルがあります。
顧客一覧を出力する時に、顧客ごとに購入件数も表示したいです。
顧客一覧をwhile($hash= $sth->fetchrow_hashref){}で取得し、
whileの中でさらに、$hash->{hoge_no}から購入履歴をSELECTしたのですが、
うまくいきません。お願いします。
0374nobodyさん
2005/11/07(月) 12:30:03ID:???>>1
Perl::DBI
http://pc8.2ch.net/test/read.cgi/php/1015943725/
0375nobodyさん
2005/11/07(月) 12:36:56ID:???それよりこっちでしょ。SQL文一つでできるし。
0376nobodyさん
2005/11/07(月) 13:21:51ID:???Data::Dumperモジュールなどを使ってハッシュ内容をダンプしてみれ。
0377nobodyさん
2005/11/07(月) 21:52:51ID:ErqtfEJb画像の「横幅」を判別して設定値以上なら縮小
設定値以下ならそのまま表示というのをしたいです。
2:
if文で何とかなると思い、扱えるように勉強しましたが、
「画像の横幅を判別する」というのはどうやってやったらいいのか・・・。
ヒントだけでも構いません。宜しくおながいします。
0379nobodyさん
2005/11/07(月) 21:59:49ID:ErqtfEJb即レスどうも
と言うことはできるんですね。
勉強してきます。
0380nobodyさん
2005/11/07(月) 22:07:40ID:???0381nobodyさん
2005/11/07(月) 22:16:16ID:???0382nobodyさん
2005/11/07(月) 22:22:21ID:???横幅取得くらいなら自前コーディングで十分。
0383nobodyさん
2005/11/07(月) 23:54:29ID:???0387nobodyさん
2005/11/09(水) 07:29:42ID:???すごい久し振りにCGIをうPしたら、まったく忘れていたらしくエラーが出てしまいます。
しょうがないので、初心に返ってhello perlを出力しようとしたら、これもエラーです。
むかついたので、別に契約してあるプロバイダにCGIチェッカがついてるので
うPして何がおかしいか調べたら、
ファイルの先頭が
#!/bin/perl
#!/usr/bin/perl
#!/usr/local/bin/perl
でないか、CGI プログラムが ASCII モードで転送されていません
だそうです。????
ちなみにソースは
#!/usr/bin/perl
# HTML表示
print "Content-Type: text/html\n\n";
print "<HTML><HEAD>\n";
print "<BODY>\n";
print "Hello Perl World!\n";
print "</BODY>\n";
print "</HTML>\n";
ASCII モードになってないんですかね?
秀丸でファイル名:hoge.cgi ファイルの種類:その他 文字コード:自動選択
で保存したものです。何年ぶりかなので何か忘れてるのかもしれません。
ど素人で済みませんがお願いします。
0388387
2005/11/09(水) 07:30:43ID:VFhSh5VA0390387
2005/11/09(水) 08:05:29ID:5otQfz0T0391387
2005/11/09(水) 08:16:09ID:5otQfz0Twakwakの解析が逝かれてるのですかね?
0392nobodyさん
2005/11/09(水) 08:53:46ID:???0393nobodyさん
2005/11/09(水) 09:06:00ID:BFWlWPsiがエラーです。
多分正規表現の指定がおかしいと思います。
0394nobodyさん
2005/11/09(水) 09:29:22ID:???正規表現なら
@imglist = grep /\.jpg$/, readdir DIR;
ワイルドカード使おうとしてるところを見るとこのへんと混同してるのかも
@imglist = glob("*.jpg");
@imglist = <*.jpg>;
0395nobodyさん
2005/11/09(水) 11:29:02ID:???ちゃんとASCIIモードで転送しているのか?
ファイルの先頭に変なバイナリが付いていないかバイナリエディタ等で確認したのか?(UTF-8保存とかね)
0396nobodyさん
2005/11/09(水) 11:51:52ID:???> ファイルの先頭が
> #!/bin/perl
> #!/usr/bin/perl
> #!/usr/local/bin/perl
> でないか、
このメッセージは、列挙された3つの行のうち好きなものを書けば
いい、という意味ではなく、サーバに対して指定された、何れか一つの行を
書かなきゃだめ、ということだと思うが。
#!/usr/bin/perl
は本当に正しいのかな?
0397nobodyさん
2005/11/09(水) 18:03:19ID:???ttp://www.wakwak.com/info/connection-setup/ftp/custom-cgi.html
0398nobodyさん
2005/11/09(水) 18:24:22ID:???ASCIIモードかどうかは、文字コードとかの問題じゃなくて
FTP転送の問題ジャマイカ?
ていうかここまで来るともはやスレ違い。
0400nobodyさん
2005/11/10(木) 00:00:36ID:???PHPでNet_DNSBLを使っていて、PerlでもDNSBLチェックをしたいです。
0401nobodyさん
2005/11/10(木) 01:43:05ID:???こんなんとか。
http://search.cpan.org/~tjmather/Net-DNSBLLookup-0.03/lib/Net/DNSBLLookup.pm
0402nobodyさん
2005/11/10(木) 03:41:03ID:???入れました
0403387
2005/11/10(木) 06:37:47ID:XPue5Djf色々ありがとう。
とりあえず
>>389で、ロリポは動きました。
で、>>395御指摘のutf-8でwakwakも逝けました。
解決できました。
>>396
>サーバに対して指定された、何れか一つの行を
>書かなきゃだめ、ということだと思うが。
そうみたいですね。
#!/usr/bin/perlはダメで、#!/usr/local/bin/perlはいけました。
>>397のリンクで
>スクリプト先頭行には #!/usr/local/bin/perl と記述して下さい。
と書いてありました。
でもあの書き方ではわかんないですよ。僕だけですかね・・・
>FTP転送の問題
でなくてよかったです。
とにかく、supecial thnxです。
0404nobodyさん
2005/11/10(木) 06:43:00ID:???>でもあの書き方ではわかんないですよ。僕だけですかね・・・
おまいだけ。あと「supecial thnx」は恥ずかしいからやめておけ。
0406nobodyさん
2005/11/10(木) 10:11:45ID:???0407nobodyさん
2005/11/10(木) 10:52:53ID:CqV/pVhDビルダーとかみたいな
0408nobodyさん
2005/11/10(木) 11:38:03ID:???Perl書くのにどんなエディタ使ってる?
http://pc8.2ch.net/test/read.cgi/php/1014357485/
0409nobodyさん
2005/11/10(木) 22:41:58ID:???現在フォームメールを作っているのですが、どうもうまくいきません。
スクリプトの流れとしては、
(サブルーチンA)フォームデータの取り込み、デコード、データをハッシュ(%FORM)に代入。
ハッシュのデータをソートしてメールボディー用の変数($body。もちろんグローバル変数)へ代入。
↓
(メインルーチン)送信ボタンが押されたかチェック。
押されたら送信用のサブルーチンへ。
↓
(サブルーチンB)確認ページの表示。ハッシュのデータをソートして表示。
なのですが、確認ページで送信ボタン(キー名はsubmit)を押すとハッシュの中身はsubmitだけになってしまうし、$bodyはどこかへ消えてしまうし、どうにもさっぱりです。
どなたか導いてください。宜しくお願いします。
0410nobodyさん
2005/11/10(木) 22:44:24ID:???0412nobodyさん
2005/11/10(木) 23:53:03ID:???0413nobodyさん
2005/11/11(金) 00:15:11ID:???サブルーチンとか言ってるけど、ページの遷移はないってこと?
0415nobodyさん
2005/11/11(金) 08:59:41ID:???0416nobodyさん
2005/11/11(金) 18:22:32ID:???Perlでテキストファイルから1行ずつ読み込んで処理する時には
while(<>){}
で済みますが、
既に変数に入っているテキストを1行ずつ処理する場合、どうしたらよいのでしょうか?
0417nobodyさん
2005/11/11(金) 19:03:57ID:???0418nobodyさん
2005/11/11(金) 19:15:49ID:???テキストの内容がでかいとでかい配列ができちゃうのがイヤだけど、
foreach my $line (split(/^/, $txt)) {
# $line に何かする
}
0419nobodyさん
2005/11/11(金) 19:18:47ID:???レスありがとうございます。
>>418
すいません。splitの/^/というのは??
この場合の^は行頭を表す^ですか?
0422nobodyさん
2005/11/11(金) 20:30:27ID:???とかでも
0424nobodyさん
2005/11/11(金) 22:14:13ID:???ありがとうございます。
だいたいどんな事をやっているのか理解するのに
しばらくかかりました。^^;
オプションを使いこなせると便利になりそうですね。
0425nobodyさん
2005/11/11(金) 23:15:24ID:???原因は何でしょうか?
0426nobodyさん
2005/11/11(金) 23:23:21ID:???0427nobodyさん
2005/11/13(日) 16:57:21ID:???これを使ってBasic認証通過させたいんですが
鯖側の$realmが日本語になってるせい?なのか失敗します
アドバイスお願いします。。
0429nobodyさん
2005/11/13(日) 22:03:50ID:???文字コードがわからなければLWP::UserAgentのget_basic_credentialsを再定義して
$realmになに渡ってきてるのか調べてあわせてやればいいと思うよ。
0431nobodyさん
2005/11/14(月) 11:00:01ID:W63Ukjvmopen関数を使用して、UTF-8でテキストファイルに出力したいのですが
その方法がよくわからず困っています。
フォームから取得した変数はSHIFT_JISなので、
そのままopen関数で出力すると、テキストファイルの文字コードは
SHIFT_JISになってしまいます。
どなたか知っておられる方がいましたら、よろしくお願いします。
0433nobodyさん
2005/11/14(月) 17:51:10ID:WMignAMjつまり、やりたいことは、配列をランダムに並び替えることです。
0434nobodyさん
2005/11/14(月) 18:03:25ID:???http://boobar.hp.infoseek.co.jp/bench/randlist.txt
0435nobodyさん
2005/11/14(月) 18:12:42ID:???パフォーマンスなんて問題になってから考えれば良い。
気になるならそもそも Perl なんか使わんし。
0436nobodyさん
2005/11/14(月) 18:39:21ID:3zfzQPqEDLPass:1234
windowsでActivePerl5.8を使っています。
IO::Socketを使い、コンソールでのチャットを作ろうと思っています。
現在は、サーバー側はechoserverのプログラムを、
クライアント側にはプロセスを受信・送信に分けたものを使おうと思っています。
実行すると文字は入力できるのですが、うまくserver側にデータが行かないようです。
たぶん原因はclient側なんですが・・。
煮詰まってしまいました。。ヒントお願いします(つд⊂)
0437nobodyさん
2005/11/14(月) 19:04:07ID:???■こんなCGI作ってください■
http://pc8.2ch.net/test/read.cgi/php/1102980903/
0438436
2005/11/14(月) 21:57:56ID:3zfzQPqEどんな本やwebページがオススメですか?
0440nobodyさん
2005/11/14(月) 22:09:16ID:???0442436
2005/11/14(月) 22:23:16ID:3zfzQPqEラクダもドキュメントも読んだけどよくわかんね^^;
神はー神はいないのかー>w<;
0443nobodyさん
2005/11/14(月) 22:33:57ID:???0444436
2005/11/14(月) 22:59:47ID:3zfzQPqE0445nobodyさん
2005/11/14(月) 23:09:56ID:???ラクダもドキュメントも読んだのに分からないのなら、Socket や
ターミナルを扱う為の基本的な知識が君には欠けている。
そしてその解説はこのスレの範疇ではない。
0446436
2005/11/14(月) 23:20:04ID:3zfzQPqE出直してきます。
0447nobodyさん
2005/11/15(火) 00:24:28ID:???0448nobodyさん
2005/11/15(火) 13:35:44ID:???0449nobodyさん
2005/11/15(火) 14:05:37ID:???0450nobodyさん
2005/11/15(火) 15:28:57ID:???Programming UNIX Socket FAQ in Japanese
http://www.kt.rim.or.jp/~ksk/sock-faq/indexj.html
UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
http://www.amazon.co.jp/exec/obidos/ASIN/4894712059/
どちらもCを読めること。
0451nobodyさん
2005/11/15(火) 18:19:07ID:5cRd32ic現行
インターネット--------WEBサーバ(DBなど含む)
現行↑の単純な構成を
↓の構成(WEBサーバ3台、DBサーバとにしたいのですが、
イメージ
WEBサーバ1
インターネット--------ロードバランサ----WEBサーバ2--------Perlプログラム&DBサーバ
WEBサーバ3
この時にPerlのプログラム等に関して注意事項、不具合予測等はありますか?
0453nobodyさん
2005/11/15(火) 18:20:45ID:5cRd32ic現行
インターネット--------WEBサーバ(DBなど含む)
現行↑の単純な構成をロードバランサーを加えて
↓の構成(WEBサーバ3台、Perlプログラム&DBサーバ)にしたいのですが、
イメージ
WEBサーバ1
インターネット--------ロードバランサ----WEBサーバ2--------Perlプログラム&DBサーバ
WEBサーバ3
0455453
2005/11/15(火) 18:26:44ID:???退散します
0456nobodyさん
2005/11/16(水) 00:22:50ID:F5yPWKpZ0457nobodyさん
NGNG0458nobodyさん
2005/11/16(水) 01:49:10ID:???画像掲示板をCGI-Perlで作ったんですが、
アドレス先に画像が存在しているかどうかを判別する事は可能でしょうか?
0460nobodyさん
2005/11/16(水) 02:26:25ID:???0461nobodyさん
2005/11/16(水) 03:50:28ID:???■ このスレッドは過去ログ倉庫に格納されています