【Perl】初心者コーナー Part19
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/01/11 13:52ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
あとは>>2-10にまかせた。
0529nobodyさん
03/01/25 19:05ID:J+PAIJA/違う。比較演算子は未定義値に使ってはいけない。
file?form_name=
で呼ばれたら、$dataは'' (空文字列?)だけど、
file?hoge=fuga
で呼ばれたら、$dataはundefになる。
つまり、こう書いておけばいい。
$data = '' unless defined $data;
0530nobodyさん
03/01/25 19:18ID:???おまけ:
undef, '', 0 はifに入れてみるとはみんなFALSEになるんだけど、
違うものだと思え。
よくある間違いで、
if (! $name) { error('名前を入れてちょ'); }
これは、$nameを0にできない。こう書くべきだね。
if ($name eq '') { ... }
0532nobodyさん
03/01/25 19:19ID:???入れてみると、みんなFALSEになる
0534nobodyさん
03/01/25 20:04ID:???普通こうします。。
0536nobodyさん
03/01/25 20:30ID:TLIt72nGreturn(next);
ってできますか?
0538nobodyさん
03/01/25 20:51ID:???みたいな感じになるはずだ。
0539nobodyさん
03/01/25 21:05ID:TLIt72nG0540 521
03/01/26 04:49ID:???ことをしたいのですけど、LWP::Simpleモジュールを使わなくても
可能でしょうか?
0542nobodyさん
03/01/26 10:04ID:???ログインができないんです。
if ($USER_DATA[0] eq $PW) {
ログイン完了
}
else {
パスワードちがう
}
とこのようにしているんですが、パスワードが合っていても違うという画面が出てしまいます。
出力して調べてみましたが
もちろん、$USER_DATA[0]と$PWの値は一緒でした(調べたときは両方に'a'という文字列をいれた)。
・・・どうすれば、きちんとした分岐結果が出るでしょうか?
ifの使い方が間違っているんでしょうか
0546nobodyさん
03/01/26 11:44ID:P6Egn5Az文字に改装を加えて投稿するにはどうすれば良いのでしょうか。
タグは使用不可で、スクリプトはCOMCHATです。
もし板違いだったらすいません。
0548nobodyさん
03/01/26 12:18ID:P6Egn5Az他の常連さんが成功してるみたいなので。。
0550nobodyさん
03/01/26 12:30ID:P6Egn5Azあまり喋らないので、気まずい...
0551nobodyさん
03/01/26 12:47ID:zx28i3UHhttp://ginrai.hp.infoseek.co.jp/
0552nobodyさん
03/01/26 12:58ID:10NDG8/sなんでもかんでもダブルクオートで囲むのはよろしくない。
それに、今はそれは全然関係ない。
>>542
自分が問題だと思っている部分だけじゃなくて、全体を出してみろ。
0553nobodyさん
03/01/26 16:22ID:???0554nobodyさん
03/01/26 17:09ID:???時間を決めて実行するための仕組み。
専用レンタルサーバとかじゃないと使えないから気にしなくていい。
スレ的には、「ある時間にCGIを実行したいんだけど」な気がするから、
「CGIが読み込まれたときに時間をチェックして実行するかどうか決めろ」
0555nobodyさん
03/01/26 17:56ID:lX4NK7pu0556nobodyさん
03/01/26 18:44ID:bvYo1DgEそもそもCGI使えないだろ
0558nobodyさん
03/01/26 22:37ID:???0560nobodyさん
03/01/26 23:30ID:2o0R3o6+小数点以下切捨てということで、
$tax = int($5*$total/100);
という感じでやっているのですが、
小数点以下四捨五入で・・・とするにはどうしたらいいのでしょうか?
初歩的な質問ですいません・・・。
0563560
03/01/26 23:47ID:???ありがとうございます!!!
$tax = int(($total * 0.05) + 0.5);
↑ちなみにこの2重括弧はやっぱり付けた方がいいんですか?
$tax = int($total * 0.05 + 0.5);
だけだとだめですか?
0566560
03/01/26 23:56ID:???0.5足して切り捨て、いわれれば納得!!!
つーか、最初の書き方変でしたね。
$tax = int($5*$total/100);
$5ってなんだ・・・(w
どうもありがとうございました。
0568nobodyさん
03/01/27 05:26ID:???>がついてる文章を<BLOCKQUOTE>で括りたいんですが、
$message =~ s/a(.*)\n/<blockquote>$1<\/blockquote>/g;
とすると、
aあいうえお
aかきくけこ
さしすせそ
が
<BLOCKQUOTE>あいうえお</BLOCKQUOTE>
<BLOCKQUOTE>かきくけこ</BLOCKQUOTE>
さしすせそ
になってしまいます。
<BLOCKQUOTE>あいうえお<BR>
かきくけこ</BLOCKQUOTE>
さしすせそ
にする方法と、aじゃなくて、>で出来る方法(>を使うとなぜかエラーが出ます)
を教えてください。
0569568
03/01/27 05:27ID:???あ、この方法の欠点見付けました。
>で始まる行でも、改行してなかったら引用と認識しませんね。
>で始まる行の後に、文章を書かない事はないと思いますが、万が一のために、\nがなくてもOKなようにしたいんですが。
0570568
03/01/27 06:31ID:???>の個数が一個減るたびにその直前に</P></BLOCKQUOTE>をつける、でいいんでしょうかね。
0571nobodyさん
03/01/27 07:42ID:x/t6q6bL2.先読みを利用して最後の引用符の行に</BLOCKQUOTE>を追加
3.その他の引用符をすべて消去
http://www.kt.rim.or.jp/~kbk/perl5.005/perlre.html
0572nobodyさん
03/01/27 08:21ID:Npl77MmW本日23:00時より祭りを開催いたします。
是非、参加下さいます様、お願いします。
携帯PHS
迷惑メールサイト一斉訪問お祭り開催
http://jbbs.shitaraba.com/news/bbs/read.cgi?BBS=853&KEY=1043335260
-------------------------------------------
0576bloom
03/01/27 08:53ID:2qTkpcb70577nobodyさん
03/01/27 15:48ID:???モジュールは自分で鯖にインストールしないといけないのでしょうか?
例えばLWPなどは一般的にどのような手順を踏めば使えるのでしょうか。
0579nobodyさん
03/01/27 16:11ID:x/t6q6bLこれが理解出来れば後は余裕かと
$message =~ s|>([^>\n]+)(\n*)(?!>)([^>]+)$|$1</AA>$2$3|s;
>577
場所によるけど良いレンタル鯖だとメジャーなモジュールは
インストール済みだったりする
http://www.zdnet.co.jp/help/tips/linux/l0495.html
0580577
03/01/27 16:21ID:???ありがとうございます。
>前も来てなかった?
もし過去ログにあったなら見逃してました、すみません。
試してみて、また分からなくなったら来ます。
その時もよろしくお願いします。
0581nobodyさん
03/01/27 16:44ID:???LWPのインストールはPerlと関係ないのでもう来ないでください。
0582nobodyさん
03/01/27 17:00ID:???どなたか改造するポイントを教えてください。
因みに使っているバージョンは
ttp://mitinoku.jp/script/12ch_2.02.lzh
これです。
bbs.cgiというファイルを改造すればいいみたいです。
動作は、等幅チェックボタンをONにして書き込むと
<tt>「書き込み内容」</tt>
と、こんな風に<tt>タグでカキコの内容をはさむようにしたいです。
では、宜しくお願いいたしますです・・・。
0583582
03/01/27 17:04ID:???↓書き込みフォームの等幅チェック部分
等幅<input type=checkbox name=touhaba value=on>
↓$com(コメント)を<tt>ではさむ処理。
if ($email eq "haba" || $email eq "tohaba" ||$FORM{touhaba} eq "on"){$com="<tt>$com</tt>";$tt=1;}
0584nobodyさん
03/01/27 17:05ID:???【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/
0586nobodyさん
03/01/27 18:01ID:???どなたか分かる方いらっしゃいましたら教えてください。
0587nobodyさん
03/01/27 18:42ID:KZuCQWmj0588nobodyさん
03/01/27 21:32ID:???2バイト文字の処理を行っていないから?
とにかく >>1 から始めよ。
>>587
レスの半分近くが誘導になる悪寒ガクガクブルブル
0589nobodyさん
03/01/27 21:46ID:???の[0-9]+、ようするにその部分に入る数字を
$renoって変数に格納するにはどうしたら?
0590nobodyさん
03/01/27 21:49ID:o8/ytwxU0592nobodyさん
03/01/27 21:52ID:???某有名所のスクリプトと比べると30%ほど速いみたいだけど…
評価してもらえるかな…?
改善点とか、悪いところとか…。
初期値は $old です…。
ドキドキ
$i = 0;
$new = "";
foreach $n (reverse(split //, $old)){
$n .= "," unless ($i % 3);
$new = $n . $txt;
$i ++;
}
$new =~ s/,$//;
0596nobodyさん
03/01/27 22:18ID:???0597腐れ厨房(゚腐゚)
03/01/27 22:58ID:9+vb6fjVんで本題なんですけどhtmlファイルの中にポストボタンがあてcurlでポストすると302 foundのhtmlが出力されんです。そん中に書いてあるURLを今度はgetするとちゃんと希望したhtmlが入手できんですけどこれどゆ仕組みですか?
302foundのリンク先をブラウザが読んで飛んでんでしょか?それともヘダにそゆ内緒の跳び先が書いてあんでしょか?ヘダ見たけどごく普通だたと思うんですけど。
0598f
03/01/27 23:00ID:???●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
$old = 1225678901;
while($old =~ s/(\d{1,3}?)$//){ unshift(@_,$&); };
print join(',',@_);
ちゅうのはカコ悪いか(w
>>597
Apacheの仕組みを覚えれ。
0601nobodyさん
03/01/28 00:35ID:???ここがPerlメモ
3桁ごとのカンマはこれが一番シンプルじゃねーかな。
0603g
03/01/28 04:31ID:QDc4rCifスラッシュの反対向きのやつってどうやって入力するのですか?
それらしきキーを押してるのに「\」が出てきます。
誰か教えてください。
0604g
03/01/28 04:54ID:QDc4rCifフォントを変えるとできました。
お騒がせしました。
0605nobodyさん
03/01/28 06:37ID:???あまり詳しくは言えないので非常に申し訳ないのですが、
ある2つのcgiをWin98(Celeron500)+Apache2+ActivePerl5.8で動かしていて全く問題がなかったのですが、
Win2000(Celeron500)で同じサーバ構成を作り(たぶん)稼動させた所、
1つは非常に快適に動作し、1つは動かないに等しい程おそくなってしまいました。
CGIを自分でかけないので分からない、というのがすでに問題なのですが、
こう言ったことは起こりうると推測出来るでしょうか?
サーバの構築ミスとかも有るかもしれません、、、。
ご教授頂ければ幸いです、、、、。
0606592
03/01/28 06:47ID:???すまそ
0607腐れ厨房(゚腐゚)
03/01/28 07:15ID:vWtuYxkUなるホドです。んでそれをブラウザはどやて認識してんですか?
あよくよくヘダ見たら302fondの時「Location: http://hoge.com/hoge.html」とあたです。これでしょか?
0609nobodyさん
03/01/28 09:19ID:???起こりうる可能性はいくらでもありますね
ソフトウェア的な設定ミスから
ハードウェアやネットワークの障害などなど
ひとまず順を追って用意した環境が間違いないか確認しましょう
>>607
まずは日本語を(ry
0610605
03/01/28 10:05ID:???レスありがとうございます。
そうですね、おちついて順をおってもう一度やってみます。
CGIのプログラムを外注に出しているので、
「おい動かなかったぞ!」と文句つけてみたものの
自分の設定ミスでしたという訳にもいかず(w
ただもともと動いていたCGIなので、どちらかといえば自分の設定ミスの方が
ありえるかな?と、その可能性をあたってみたかったという所です。
いやまったくお恥ずかしい話なんですが。
0611nobodyさん
03/01/28 10:42ID:???0613nobodyさん
03/01/28 15:26ID:???0614腐れ厨房(゚腐゚)
03/01/28 16:53ID:vWtuYxkUんな難解なヘンテコ文章読むの強要する低脳さんです。乞食が「このくらいの寒さひもじさなんだお前ら根性なし。」と騒いでるみたいです。
ところですべての文字列にマチさしたいんですけど
([.]|[^.])*?
てヤてんですけどカコとパイプだらけでカコ悪いです。もちょとスマトな方法ないですか?
全能な正規表現
(??{ code })
(?{ code })
これ試してみましたけどなんかダメでしたです。Perl5.8です。
0615nobodyさん
03/01/28 17:02ID:???.*じゃ駄目なのか?
あと、HTTPについては、http://www.studyinghttp.net/
日本語だから読めるでしょ?
とにかく、日本語を書くように。
0616nobodyさん
03/01/28 17:08ID:oYLjlQQn.* ということではなくて?
あとLWP::UserAgentはredirectの解決もしてくれるから便利だよ。
curlはよくしらないけど。
0617nobodyさん
03/01/28 17:09ID:oYLjlQQn0618腐れ厨房(゚腐゚)
03/01/28 17:20ID:vWtuYxkUあとLWPは何度やてもうまく逝かなかたんで諦めましたです。curlはwgetライクで使い安いです。
0619nobodyさん
03/01/28 17:39ID:???荒らし←どうせ2chだろ。
氏ね
0620nobodyさん
03/01/28 17:48ID:???/.*/s
0622けんすう ◆mTj9hjLz9w
03/01/28 19:22ID:???0623nobodyさん
03/01/28 19:46ID:wCME9ZCuopen(FILEB,"/var/tmp/b");
while ($linea=<FILEA>) {
while ($lineb=<FILEB>){
if ( $linea eq $lineb ){
処理・・・
}
}
見たいな事ってできないんでしょうか?
上記のコードだと FILEAのループが
1行分で終了してしまうのですが・・
0626nobodyさん
03/01/28 19:57ID:wCME9ZCuほぅほぅ。
とにかく623のコードじゃダメなわけね。
なんでダメなんだろ?理由がわからない。
0627nobodyさん
03/01/28 20:01ID:???ファイルハンドルからのデータ取得は、一度最後まで行ったらseekしないと戻らないから。
■ このスレッドは過去ログ倉庫に格納されています