[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/08 16:18 / Filesize : 307 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPerl(超初心者用)



1 名前:nobodyさん mailto:sage [2006/09/10(日) 13:33:48 ID:???]
このスレッドは、他のスレッドでは書き込めない超低レベル、  
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。  
Perl使いが優しくコメントを返しますが、  
お礼はPerlの布教と初心者の救済をお願いします。  


431 名前:399 [2007/09/25(火) 22:41:44 ID:tW7VjElz]
誤解のないように解説しますと、いま現在も私は調査活動を続行中です。
他所で調査をしながら、ここでも質問しているという次第です。
ただし、マルチポストはしていませんよ。笑

432 名前:nobodyさん mailto:sage [2007/09/25(火) 22:42:20 ID:???]
omotiを思いだしたのは俺だけだろうか、、、
まあ、コードを書いた経験があるだけomotiよかましだろうが
「ハイキング程度の人間がエベレストに挑む」
「プーアルが完全体セルに挑む」
のを単に夢想してるだけだ。
「ロードマップが欲しい」?
地図の見方すら分ってない人間に分るようなフローチャートを無償で作れと?

おまえさんがやるべき事は経験を積むことだよ。
ここでうだうだ、くだらん持論を述べる事ではなく。

さっさとアルバイトに応募しろ、外れだと思ったら止めて他を当りゃいいだけだ。

433 名前:399 [2007/09/25(火) 23:08:16 ID:tW7VjElz]
>>432
ある意味納得です。アルバイトへの応募も必要だし、経験を積むことをするのは必須事項でしょう。
omotiって何か知りませんが、私は地図を読む能力がゼロだとは思いません。
私は自分を過少評価する傾向がありますが、それをゼロだと言ってしまうと、卑下しすぎでしょう。

地図を必要とする理由は、地図を頭に入れてから実践したほうが効率面で有効だと判断したからです。
どういった手段で、先人達は、地図を入手してこられたのでしょう。素朴な疑問。



434 名前:nobodyさん mailto:sage [2007/09/25(火) 23:29:27 ID:???]
>>433
>omoti
ぐぐれ。
>地図を読む能力
「読む」のは誰でも出来る、経験に応じたレベルで。
経験を積むと見方が分ってきてより深く地図を読むことが出来るようになる。
>自分を過少評価
何様だ?オマエ。

経験をコードの行数で書くようなドシロウトみたいなマネしといて、
よくもまあ、自分を過大評価出来るもんだ。

435 名前:nobodyさん mailto:sage [2007/09/25(火) 23:38:09 ID:???]
アルバイトに来られる側の人間として一言だけ
迷惑だから来ないで下さい

436 名前:399 [2007/09/25(火) 23:45:43 ID:tW7VjElz]
>>434
どうも意志の伝達が正常に行われなかったようです。
自分を過少評価というのは、自分が偉いというのとは逆に、
自分をネガティブに評価する傾向があるという私の一般的性質を指しています。
だから、なぜあなたが怒りを発生させたかについては責任を負いかねます。

それから経験をコードの行数で書くのが実力や経験量を測定する尺度としてあまり妥当な手段でないことは認めるものの
何がしかの尺度にはなるかと思います。
一応情報系なので日常会話で行数について耳にしますので、補足しました。

>>435
アルバイトに来ると迷惑ですか。
私はやる気だけはありますよ。これまでもアルバイトしてましたが、面接でそう言いました。

437 名前:nobodyさん mailto:sage [2007/09/25(火) 23:52:05 ID:???]
>>399
PMだけを目指すのならともかく、若いうちはガンガンスクリプトを書いとけ。
出来たものから汎用性のある部分をモジュールとして使えるようにしろ。
モジュールとして使わないまでも、関数なりクラスとして再利用出来るようにストックしとけ。


ロードマップだの何だの言うよりも、とにかくショウモないスクリプトでもいいから書いて書きまくれ。
言われてることが分からないなら、とっとと現実に戻ってクソして寝てみる夢を見つづけろ。

438 名前:nobodyさん mailto:sage [2007/09/26(水) 02:18:47 ID:???]
perlの仕事なんか無いよ

439 名前:nobodyさん mailto:sage [2007/09/26(水) 02:21:03 ID:???]
namcoの遠藤みたいにプログラムなんか欠片も知らないで入って
それでいてゼビウスのようなゲーム作って大成功する奴もいるんだ
お前みたいに能書きだけで先に進もうとしない奴は何やっても駄目




440 名前:nobodyさん mailto:sage [2007/09/26(水) 02:24:18 ID:???]
>>399
とりあえず、会員制のサイトでも作ってみたら?最初はモジュールを
使わず、全てPurePerlで組む。完成しても公開はしない。あくまで、
自分の学習用。機能としては…
・新規登録フォームで必要項目を記述して送信すると
 入力されたデータを保存。同時に確認メール発射。
・確認メールの中にURLが記入されていて、そこに
 アクセスすると入会登録完了。
・入会登録完了すると完了メールが届いて、そこに
 書かれているIDとパスワードでログイン。
ここまで出来れば、Webサイトを作成する上での基本は学べると思う。

その後に、サイトの中でBBSなりユーザ情報設定等を追加していく。
ここまでで、Webサイトを運営する上で解決策が学べると思う。

その後に、同じ物をモジュールを使って作り直す。
ここまでで、モジュールの有難さを学べると思う。

ここまでできて、解らない事があれば、質問してくれ。逆に
それまでは、自分の力で解決してくれ。途中でどうしても
自分の力で解決できなければ、才能が無いので、諦めてくれ。


441 名前: ◆T7TfLMI9dM mailto:sage [2007/09/27(木) 00:54:04 ID:???]
2ch検索でうっかりomotiを入力しちゃった俺が来ましたよw

>>399
いきなり大きなものを一から作ろうとすると挫けるから、自分の思ってる機能に
一番近いものを実装してるCGI探してきて設置。まずはそれを好きなように
改造しまくる。これだけで一通りの流れは掴めると思う。次が>>440かな。

ちなみに個人で始めるWebサービスは99%赤字になるから、金が欲しいなら
素直に今できるバイトで稼げ。

442 名前:nobodyさん mailto:sage [2007/09/27(木) 22:26:20 ID:???]
タクトと同じ匂いがする...

443 名前:nobodyさん mailto:sage [2007/09/28(金) 09:09:43 ID:???]
初心者スレにも湧いてるしな。
うざったいことこの上ない。

444 名前:nobodyさん mailto:sage [2007/09/28(金) 20:52:36 ID:???]
その前はProgの方のperlスレに湧いてたw
全部同一人物かw

445 名前:437 mailto:sage [2007/09/29(土) 00:32:05 ID:???]
やっぱり口だけ君だったのか。
プログラミングなんて習うよりも作れだというのに。

446 名前:nobodyさん mailto:sage [2007/09/29(土) 01:20:03 ID:???]
T7すっげぇ久々に見たな
ってか実はいつもいるのか?

447 名前:nobodyさん mailto:sage [2007/09/29(土) 01:25:07 ID:???]
どこに沸いたって?

448 名前:nobodyさん mailto:sage [2007/09/29(土) 13:45:18 ID:???]
どのスレかわからんが、いつも見てるやつじゃないとOmotiを知らないし付き合わんだろw

449 名前:nobodyさん mailto:sage [2007/10/04(木) 08:24:35 ID:???]
質問です。
if ($vote_terminal == 0){$voteflag = 1;}
else{
$a1 = $ENV{'HTTP_USER_AGENT'};
if (($a1 =~ /^DoCoMo\//)||($a1 =~ /^ SoftBank\//) ||($a1 =~ /^UP\.Browser/)){
if ($vote_terminal == 1){$voteflag = 0;}else{$voteflag = 1;}
}
elsif ($vote_terminal == 1){$voteflag = 1;}else{$voteflag = 0;}
}

HTTP_USER_AGENTの部分をREMOTE_ADDRにしたいのですが
携帯電話会社のIPアドレスをどう追加してやれば良いのでしょうか?

携帯電話のIPアドレスリスト
ja.wikipedia.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:Tietew/%E6%90%BA%E5%B8%AF%E9%9B%BB%E8%A9%B1%E3%81%AEIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%AA%E3%82%B9%E3%83%88



450 名前:nobodyさん mailto:sage [2007/10/04(木) 09:06:18 ID:???]
その部分を変えても仕方ないと思うが。
IPアドレスで判定する部分そのものを新たに追加するってんならわかるが。

451 名前:449 [2007/10/04(木) 13:54:49 ID:wlik/mVj]
レスありがとうです。
そうなんですか
尚更手に追えそうもないです;
失礼しました

452 名前:nobodyさん mailto:sage [2007/10/06(土) 23:30:58 ID:???]
標準入力を二度読み込みたいんだけど、方法ないですか?
目的は一度、デコード&整形した後でデコードだけの整形していないデータを取り出すこと。
seek STDIN 0, 0;は既に試しました。

453 名前:nobodyさん mailto:sage [2007/10/06(土) 23:35:10 ID:???]
最初に配列に放り込んでキープしておけば?

454 名前:nobodyさん mailto:sage [2007/10/06(土) 23:40:05 ID:???]
>>452
STDIN→デコード→ファイル1に保存→整形→ファイル2に保存

ができない訳を言え

455 名前:nobodyさん mailto:sage [2007/10/07(日) 00:05:53 ID:???]
>>454
やっぱり、その方法が手っ取り早いですか?
考えてはみたけど、それなら結局は最初から変数に読み込んで後で使う方がいい気も…
んー、キーボード入力じゃなくてPOSTデータだから取り出せるものと思ってました。
一生手を入れないでマージンまでやってくれるクラスを作ろうと思ってまして。

456 名前:nobodyさん mailto:sage [2007/10/07(日) 02:14:11 ID:???]
>>455
何だか大きく勘違いをしているような気がするが、
POSTデータなら最初から変数に入ってる

457 名前:nobodyさん [2007/10/21(日) 09:54:12 ID:xMq+XN4p]
やりたいこと:mod_perl2をインストールしたい。
できなかったこと:ActivePerlへのppmを通じたインストールがうまくいきませんでした。
やったこと:ActivePerl5.8.8上でmod_perl2をインストールしようとし、
ppm> rep
Repositories:
[1] theoryx5.uwinnipeg.ca
...
[7] Autonamed 2
ppm> search mod_perl
Using cached search result set 1.
1. Apache-mod_perl_gui~ [1.31] mod_perl Guide
2. mod_perl [2.0.3] Embed a Perl interpreter in the Apache/2.2~
3. mod_perl [1.29_01~ Embed a Perl interpreter in the Apache/1.3~
....
ppm> install 2
Package 2:
====================
Install 'mod_perl' version 2.0.3 in ActivePerl 5.8.8.817.
====================
Downloaded 2886493 bytes.
Extracting 737/737: blib
Error: can't run 'C:\Perl\bin\perl.exe install_script': No such file
or directory
となったので、「"install_script" ActivePerl」でググってみたりしたのですが、
どこに問題があるのか特定できませんでした。

次のアクションをご教示ください。よろしくお願いいたします。

458 名前:nobodyさん mailto:sage [2007/10/21(日) 10:59:29 ID:???]
>>457
apache2.2は入ってるのか?

459 名前:457 [2007/10/21(日) 11:18:08 ID:xMq+XN4p]
>>458
入ってます。



460 名前:nobodyさん mailto:sage [2007/10/21(日) 11:19:32 ID:???]
>>457
ん?うちでは問題なくinstallできるべ。

>>458が言ってるみたいに、
Apache2.2じゃなくて、Apache2.0にmod_perl入れたかったら、ppm install mod_perl2.0 ってしなきゃだめよ。

ちなみにひとつ言っとくが、Win版の2.0.61,2.2.6では両方とも、theory58Sのmod_perlは正常に動作しないべ。

あと、install_scriptってのはこれのこと
theoryx5.uwinnipeg.ca/ppms/scripts/install_modperl

461 名前:nobodyさん mailto:sage [2007/10/21(日) 11:32:16 ID:???]
失敬。リロードしてなかった。

で、もっかい、今度は、(threory58Sはreposにいれてるんだよな?)
ppm install mod_perl ってやってみ。

462 名前:nobodyさん mailto:sage [2007/10/21(日) 11:43:40 ID:???]
実はapache2.0を入れているという罠

463 名前:どうしてパンチラが流出? mailto:パンチラなし?佐藤ゆかりタン? [2007/10/21(日) 14:04:29 ID:???]
          _      ⌒ヽ_  / `ヽ、
       /´_  `ヽ、 ,ィ''´ ̄ハ、i,/lヽ、 l!
      ,ィ´/'´/::/:::ラ./   / /!イソ !i .ハ /
    /゙ ! ' ::´:::::::|:// / ,イ  /!"゙ヾ|リ i メ
    ! | :: ::::::ri/| |:::i|ハ i.|| i,/|!  _//!:::|::::|
       |  :: .::イリノハ ::!lィl丙`|/ |、 _ハ/::/:::;/
       i  ; ::::レl/ !,ヾ、! ゙'゚┘   尤i'/,' / 20万人くらいが見ちゃったパンチラ!?
     /  !..:::::l/ ::::アi. 、    , ゙‐'ソ'"'´ 元女子アナウンサー丸川珠代さん(白パンティー)
  ト、_// :::|:::::/ ::::://^ヽ、 ~ ,.ィi′ ex21.2ch.net/test/read.cgi/ana/1191988450/9
  `ー'ナ/.:/::::/ ::::/´!   ヾ "´l:::l|
    i / .:|:::/ :::;ィ/ |!    ヽ:::!:riト、_, 日本人でよかった♪ 白でよかたーーー!
      !| /:|/ .//! ,!| ヽ   ヾ、,リ この番組で有名となった参議院議員(東京)のまるたまさん
     | | //:::/:::! ! \. \   ヽ\ love6.2ch.net/test/read.cgi/furin/1148694809/174
     ヾ// ::::/:::::|ノ  _二;ヽ   ゙、 ,}
     オ′:::i :::::::|/ ̄   \  ヾー-、 たけしさんとツーショットのまるちゃんに注目!(白パンティー)
    / | :: ::|::::::::::!       ハ    iヽ i でも、小泉チルドレン筆頭の
    i |  ::|:::::::::リ      ,イバー‐'′! ヽ 佐藤ゆかりタン萌えパンチラは無いよーーーーーーん
    ! |i  : :|:::::ノ       i /ハ | / |  \
      ヾ _,, !<_.       { ///"     ヽ
  _,. ‐''";;;;;;;,:'";;;;;/ ゙̄T''''r-レ  \  _   i
  ヾ"、_;;;;_,;:'";;;;;;;;;;/;;;;;;;;;i;;;;;l;;;;;|    }=ニl!;;ト、 /
  ヾ;;;;;;/`''ー--ヶ、;;;;;;シ;;;;;;|;;;;;;!   ぐー`"ヽ!
   ヾi'     /  ヾ、;;;;;;;/;;;;;;;|  〈´  ̄~゙'''┘
     ;ヘ   , i    ゙\;;;;;;;;;ハェュj パンチラ規制厨と闘ってます
    ! `ヽ、'_,{_      ゙\;;;;;| qb5.2ch.net/test/read.cgi/sec2chd/1192266095/639

464 名前:457 [2007/10/21(日) 15:13:46 ID:xMq+XN4p]
>>461
やはり無理でした。
>>462
再確認しましたがapache2.2です。

--------------------------------------------

やむを得ず、「何かカオスな理由でトラブルが起きた」ということにして、
ActivePerlのリインストールという強硬手段に出ました。
その結果、無事インストールできました。

結局、問題の原因はミステリーのままに。^^;


アドバイスくださった方、ありがとうございました。

465 名前:nu. [2007/10/21(日) 15:30:36 ID:hpzcI35P]
初めまして超くだらない事かもしれませんが質問させてください。
OceanGrid形式の動画を録画するにはどうしたらいいですか?
また録画出来るものなのでしょうか…?
よろしくお願い致します。

466 名前:10い mailto:d [2007/10/21(日) 19:05:50 ID:???]
質問します。
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/){&zap;}
上みたいなのがあったとして、 USER_AGETNに、bot かtwiceler があると。
って感じなのですが、これですと例えば、Googlebotが来ると一致してしまいます。
bot以外の Googlebot や 1bot、 bots などに合致させない方法はありますか?
ifからの文はなるべく変えない方法を教えてください。
できれば、=~// この中の範囲内の変更でできないでしょうか。よろしくお願いします


467 名前:nobodyさん mailto:sage [2007/10/21(日) 19:16:00 ID:???]
and $ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/

これを条件に加えるのがわかりやすくないかな

468 名前:10い mailto:d [2007/10/21(日) 19:37:52 ID:???]
>>467 お答えありがとうございます
467さんが書かれたのは、botに一致しないのでしょうか?
test下のですが and にエラーがでてしまい結果がでません
Premature end of script header
s: /home/oo/public_html/index.cgi
syntax error at /home/oo/public_html/index.cgi line 462, near "and"
Execution of /home/oo/public_html/index.cgi aborted due to compilation errors.

前後の流れは
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/){&zap;}
else{&zap2;exit;}

のifからの部分を
and $ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/){&zap;}のように変えてエラーです




469 名前:nobodyさん mailto:sage [2007/10/21(日) 19:43:45 ID:???]
めちゃくちゃ古いヴァージョンなら and => && でどーでしょ



470 名前:10い mailto:d [2007/10/21(日) 19:51:36 ID:???]
エラーが
syntax error at /home/oo/public_html/index.cgi line 462, near "=> &&"
です

$perl -version
This is perl, version 5.005_03 built for i386-freebsd
apache はApache/1.3.39 です
パールを最新にしてみます

471 名前:nobodyさん mailto:sage [2007/10/21(日) 19:58:24 ID:???]
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/ and
$ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/){&zap;}

エラー出ないよ

472 名前:10い mailto:d [2007/10/21(日) 20:18:23 ID:???]
>>471さん
取り急ぎ
andから書いてました
perlのアップグレードを始めてしまってなかなか終わらないので
終わったら試して確認してみます


473 名前:10い mailto:d [2007/10/21(日) 21:22:35 ID:???]
>>471 上行のキーワード完全一致だけがzap4に飛びました
perlのバージョンじゃなくて書き方が違っていたようです
!~/hoge/ の意味を教えてください

474 名前:nobodyさん mailto:sage [2007/10/21(日) 21:58:00 ID:???]
hogeにマッチしなければ真を返す(=~/hoge/の逆)

475 名前:10い mailto:d [2007/10/21(日) 23:00:45 ID:???]
>>474ありがとうございます

476 名前:nobodyさん mailto:sage [2007/10/23(火) 20:50:38 ID:???]
変数が配列であるかどうかを確認するには、どうすればよいのでしょうか?

477 名前:nobodyさん mailto:sage [2007/10/23(火) 21:36:17 ID:???]
wantarray

478 名前:nobodyさん mailto:sage [2007/10/23(火) 21:54:51 ID:???]
>>477
すいません、
sub write {
my $name = $_[0], $data = null;
if ( $_[1]が配列かどうかを確認したい ) { $data = join( "\n", $_[1] ) }
else { $data = $_[1] }

open( OUT, ">$name" ) || return 1;
print OUT $data;
close( OUT );
return 0;
}
のようにして、ifのところで、$_[1]が配列かどうかを確認したいのですが・・・・・
wantarrayの使い方がいまいち理解できませんでした。
このような場合は、どのようにすればよいのでしょうか

479 名前:nobodyさん mailto:sage [2007/10/23(火) 23:15:24 ID:???]
>>478
「$_[1] が配列」ってPerlの言語仕様上ありえないわけだが?
$_[1]が配列のリファレンスか否かってんであれば、
if ( ref $_[1] eq 'ARRAY' ){ }

まあ、ソースを拝見した所、おそらく
&write( 'name', @data ) ;
あたりで呼ぶんだろから、
my $name = shift @_ ;
my $data = undef ;
if ( @_ >= 1 ){ $data = join( "\n", @_ ) ;}
でいいんじゃね?

余分なことだが、
1. write は perl ですでに使われてるので他の名前にした方がいい。
2. 、、、、まあいいや。



480 名前:nobodyさん [2007/10/24(水) 13:14:01 ID:nBn+cskB]
いまだにphpではなくperlで動いているあたり。。。
ttp://yoshihi6.com/perl/?q=http%3A%2F%2Fja.wikipedia.org%2Fwiki%2FPerl

481 名前:nobodyさん mailto:sage [2007/10/24(水) 18:26:51 ID:???]
>>479
その方法で解決しました。
ありがとうございます。

482 名前:nobodyさん [2007/10/25(木) 17:20:59 ID:ZciT02o+]
スライスした配列の参照を表現するにはどのように書けばいいですろうか。
@org[0..2]のリファレンスを作るとして、
イメージは$ref = \@org[0..2];みたいなことなんですが・・・

483 名前:nobodyさん mailto:sage [2007/10/25(木) 18:16:27 ID:???]
$ref = [@org[0..2]];

484 名前:482 mailto:sage [2007/10/25(木) 18:38:58 ID:???]
>>483
おおっ、なるほど!無形配列に入れるんですね。
勉強になりました!

485 名前:nobodyさん [2007/10/26(金) 10:43:23 ID:HBlkZ3uQ]
セッション変数で配列の扱い方はどうすれば良いでしょうか。

検索結果の一覧画面Aで、リンク文字列からは検索結果をCSVファイルに出力しようとしてます。
HTMLタグで、リンク先にURL引数として動的に実行時の回数を渡します。
↓----
<a href="data.cgi?num=(実行時の回数)>CSVデータ出力</a>
----
そして、実行回数とSQLをセッション変数に保存します。
↓----
# 一覧画面Aの実行回数を更新
my $numListA = $session->param('numListA');
++$numListA;
$session->param("numListA", $numListA);

# 一覧画面のN回目の実行時のSQLを保存
$session->param('ListAsql', $sql);
----
現状は上記のようにしてますが、これはまだ単一のSQLしか格納できない状態です。
これを配列でN番目の要素にSQLをを格納したいと考えてます。


486 名前:nobodyさん mailto:sage [2007/10/26(金) 13:37:59 ID:???]
状況がハッキリ想像できてないので迷惑な答えになってしまうかもしれないけど
CGI-Sessionではたしか配列はリファレンス渡しだったと思う。

最初に↓こう準備しておいて
$arrayref = [];        #初期化式
$session->('sql', $arrayref); #セッションに格納

その都度
$$arrayref[0] = $sql;
$$arrayref[1] = $sql;
$$arrayref[n] = $sql;

でいけるかも?

487 名前:nobodyさん [2007/10/26(金) 17:05:53 ID:1fUnrvio]
ほんとにどうしようもない初心者なのですが誰か教えてください。

#!C:/Perl/bin/perl

require "cgi-lib.pl";


&ReadParse(*input);


@list={$input{'a'},$input{'b'},$input{'c'}}

$result=0;

foreach $value (@list) {
if($value == 0){$result++;}
elsif($value == 1){$result=$result+2;}
else{$result=$result+3;}
}

if($result<=1){$message = "文章1";}
elsif(($result>=2)&&($result<=4)){$message = "文章2";}
else{$message = "文章3";}

inputにはラジオボタンから0〜2の値が送られてくるように設定してあります。
messageが結果として表示されるようにしてあるんですが何度やってもエラーがでてしまいます。
どこが間違ってるのでしょうか?

488 名前:nobodyさん mailto:sage [2007/10/26(金) 18:26:02 ID:???]
@list=($input{'a'},$input{'b'},$input{'c'});

489 名前:nobodyさん [2007/11/01(木) 10:55:03 ID:yhsG2JfP]
index.cgiからhtml.plをrequireし、
html..plの中でinfo.plを使いたいのですがどうしたら良いのでしょうか。
下のような感じではうまくいきませんでした。

==index.cgi==
#!/usr/bin/perl

require "./html.pl";
&html::header();

==html.pl==
Package html;

require "./info.pl";
sub header(){
print $header;
}

1;

==info.pl==
$header="Content-type:text/html¥n¥n";





490 名前:nobodyさん mailto:sage [2007/11/01(木) 11:10:49 ID:???]
構造に問題があると思うけど、
PackageのPを小文字にすればいいと思うよ

491 名前:nobodyさん [2007/11/01(木) 11:19:21 ID:yhsG2JfP]
>>490
packageのpは実際のソースのほうは小文字になってました。
投稿ミスorz
あとinfo.plの1;も投稿時の書き忘れです。
構造??

492 名前:489 mailto:sage [2007/11/01(木) 12:16:29 ID:???]
自己解決しました。
print $header;を
print $main::header;
にしたところ、Content-type:text/html¥n¥nが出力されました。



493 名前:nobodyさん mailto:sage [2007/11/01(木) 19:49:10 ID:???]
headerの出力をinfo.plでする意味がワカランのだが?
index.cgiで出力の制御
html.plでHTML文書の構造制御
info.plでHTML文書の内容を制御
にした方が構造的には綺麗にまとまるとオモ。

494 名前:nobodyさん [2007/11/03(土) 04:03:09 ID:0ypwQ9jZ]
CGI上のIDやパスワード認証のログを保存するにはどう書き足せば良いでしょうか?

495 名前:nobodyさん mailto:sage [2007/11/03(土) 04:35:48 ID:???]
fwrite($fp, $id.$pass);

496 名前:nobodyさん mailto:sage [2007/11/04(日) 01:00:13 ID:???]
>>495がPHPに見えるけど、酔っ払ってるせいだと思ってとっとと寝よう。

497 名前:nobodyさん mailto:sage [2007/11/08(木) 09:06:26 ID:???]
禁止メールアドレスを複数設定したいのですがどうすればよろしいですか?
1週間前にcgiを知りましてなんとか1語ではできるようになったのですが・・・
ヒントでは理解できそうもないのでずばり回答でお願いします。

# 禁止メールアドレスチェック
if ($in{'email'} =~ /yahoo/) {
&error("フリーメールはダメ");
}


498 名前:nobodyさん mailto:sage [2007/11/08(木) 12:50:47 ID:???]
まず、それだとfooyahoooo@docom*.ne.jpとかも弾いてしまうわけだが

499 名前:nobodyさん mailto:sage [2007/11/09(金) 01:30:01 ID:???]
>>498さん
そのようですね。失礼しました。さようなら。



500 名前:nobodyさん mailto:sage [2007/11/20(火) 17:27:42 ID:???]
誰か教えてくだされ。

Perl 5.8.2 CGI::Lite 2.02 を使って、うpローダを作ったんです。

ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i2
を参考にバイナリ対応パッチは行いました。

Windowsだとうまく動いています。MacOSXからだと、0Dが0Aに化けます。
パッチが足りてない部分があるのでしょうか?
どこをなおせばうまく行きそうですか?

501 名前:500 mailto:sage [2007/11/20(火) 18:07:03 ID:???]
追加情報
・Mac OSX 10.4.11 (不明)の FireFox 2.0.0.9 からアップでデータ化け発生。(別の場所)
・Mac OSX 10.4.10 (Intel)の FireFox 2.0.0.9 からアップでデータ化けなし。(漏れ)

現在の状況:検証のために漏れのMacOSXを10.4.11へアップデータン中。

もしかすると、Perl側が原因じゃないかもしれないんで、Mac板でも情報集めして見ます。


502 名前:nobodyさん mailto:sage [2007/11/20(火) 18:57:03 ID:???]
CGI::LiteとCGI_Liteは別物だぞ

503 名前:nobodyさん mailto:sage [2007/11/20(火) 19:45:06 ID:???]
>>502
ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i13
CGI::LiteとCGI_Lite

CGI::LiteモジュールはCGI_Liteモジュールの後継になります。 CGI::Lite v2.0とCGI_Lite v1.9の違いは(ソースレベルで見ても)以下の3点だけです。
* パッケージ名
* バージョン番号
* ドキュメント内での記述(パッケージ名、バージョン、更新日付)
CGI_Liteに関する情報は、99%までそのままCGI::Liteにも適用できます。なお、CGI::Lite 2.02版からは少しずつ修正が加わり始めています。

504 名前:nobodyさん mailto:sage [2007/11/20(火) 21:37:27 ID:???]
別物じゃん

505 名前:nobodyさん mailto:sage [2007/11/27(火) 00:40:39 ID:???]
Debian etch、Apache2.2.3+perl5.8.8でCGIスクリプト走らせたらHDDアクセスが止まらなくて
ログにOut of memory!ってでたんですけどどうすれば直りますか?

506 名前:nobodyさん mailto:sage [2007/11/27(火) 08:35:46 ID:???]
鯖スペックとその糞コード晒せ

507 名前:505 mailto:sage [2007/11/27(火) 13:35:14 ID:???]
スクリプト
ttp://park1.wakwak.com/~aa1/wwwolf/

鯖スペック
CPU:Pentium-M 1.4GHz
メモリ:768MB
HDD:80GB

508 名前:nobodyさん mailto:sage [2007/11/27(火) 14:09:42 ID:???]
Perlのプログラムに関しての質問です.
現在2つのテーブルデータがありまして,
片方がID付きの参照テーブルになってまして,片方がログデータになってます.
ログデータを読み込んで,参照テーブルのいくつかのカラムを比較し,同一の
データを持つもつデータの参照IDを投げるという処理を行ってます.
現在ログデータを1行ごとに取り出し,その一回一回に参照テーブルを一致させるまでループして比較するという処理を行ってますが,
データの量もあり時間がかかりすぎて仕方ありません.何か良い方法はないでしょうか
イメージとしては以下の通りです.
この例ではログテーブルの2番目,3番目,4番目の文字を,参照テーブルの2番目,3番目,4番目と比較し
一致したら,参照テーブルの1番目のIDを出力してあげるといった形です.

ログテーブル
1107,A,B,C
1108,C,A,D
1109,A,C,B
1110,A,B,C

参照テーブル
1,A,B,C
2,A,C,B
3,C,A,D

出力データ
1107,1
1108,3
1109,2
1110,1

509 名前:nobodyさん mailto:sage [2007/11/27(火) 17:03:00 ID:???]
>>508
my $log = <<'EOF' ;
1107,A,B,C
1108,C,A,D
1109,A,C,B
1110,A,B,C
EOF

my %table = reverse map{ split /,/, $_,2 } split /\n/, <<'EOF' ;
1,A,B,C
2,A,C,B
3,C,A,D
EOF

printf "%s\n", join ',', map{ $table{$_} || $_ } split /,/, $_, 2 for split /\n/, $log ;

文字通り参照テーブルをテーブルにするだけだよ。

>>507
人狼の掲示板で聞くのがスジだ。

インストールし忘れ(jcode.plなんか)とかチェックポイントが多すぎて答える気にもならん。



510 名前:508 mailto:sage [2007/11/27(火) 20:31:16 ID:???]
>>509

有難うございました.
実際やってみまして上の例ではちゃんと出力できたことは確認しました。
しかし%tableの意味するところが勉強不足でちょっと分かりませんでした。

変数等をいじったりしてみたのですが
お恥ずかしいところですが、具体的にどのような処理を行っているのか教えて頂けると
幸いです。

511 名前:nobodyさん mailto:sage [2007/11/28(水) 00:13:10 ID:???]
my %table~~の行。
「改行区切りのデータをsplit して無名配列に入れ(split...)
 その要素を最初の,だけで区切って更に無名配列として返し(map{})
 結果として必ず偶数個となっている配列をhashと見なしreverse(reverse)
 それを%tableと云うhashに収納。」
printf~~の行。
「$logを改行にてsplitして無名配列に入れ(forの後のsplit...)
 それをfor修飾子にてループ(for)。
 その各要素を最初の,だけで区切って無名配列に入れ(forの前のsplit...)
 その無名配列の要素をkeyとして
 テーブルにデータがあればテーブルのデータを返し、
 なけれはそのまま要素を返す(map{})##
 で,でjoinして(join...)
 printf で整形してprint out(printf)」
## は真面目に $_[1] だけ table見に行かすべきなんだけど
メンドかったから、、、
EOF云々は「ヒアドキュメント」

まずは本でhashを覚えるんだ。

512 名前:nobodyさん mailto:sage [2007/11/28(水) 00:29:11 ID:???]
スレタイと>>1読んで反省した。
スタンダードな書き方で書くべきでした。

my $table = <<'EOF' ;
1,A,B,C
2,A,C,B
3,C,A,D
EOF

my %table ;
foreach my $line ( split /\n/, $table ){
 my @dat = split /,/, $line, 2 ;
 $table{$dat[1]} = $dat[0] ;
}
foreach my $line ( split /\n/, $log ){
 my @dat = split /,/, $line, 2 ;
 print $dat[0] . ',' . $table{$dat[1]} . "\n" ;
}


513 名前:509 mailto:sage [2007/11/28(水) 11:28:52 ID:???]
なるほど,これなら理解できそうです.
この例では,一致させる列が順番になってますが,現在扱っているデータでは
順番にはなっていないのですが,整列してから処理したほうが良いですかねぇ?

わざわざ有難うございます.
助かりました.

514 名前:509 mailto:sage [2007/11/28(水) 13:38:32 ID:???]
何回も申し訳ありませんが,
$tableないし$logデータは別ファイルに保存されているので,ファイルから
読み出しを行ったので,配列として読み出したのですがこの場合処理は
どうなるのでしょうか.

515 名前:nobodyさん mailto:sage [2007/11/28(水) 13:58:53 ID:???]
さすがにちょっとは自分でもしらべようぜ。
ヒント貰ってるんだからforeachとsplit辺りから検索できるだろうし。

516 名前:509 mailto:sage [2007/11/28(水) 14:21:28 ID:???]
↑すいません,自己解決です。

517 名前:465 [2007/11/28(水) 23:46:53 ID:JbJxNee4]
activePerl5,8インストールしようとしたら
invalid Drive:G
ってなってインストールできナス
orz
助けて下さい


518 名前:nobodyさん mailto:sage [2007/11/29(木) 13:33:09 ID:???]
ドライブGがないのに、ドライブGをインストール先に指定しているだけでしょ

519 名前:超初心者 [2007/11/30(金) 10:10:18 ID:Hc83DxRo]
Perlがわからない超初心者です。よろしければ教えてください!

広告管理CGI ver1.3
hpcgi2.nifty.com/hary/soft/myfile.cgi?num=25
これを使ったんですが、文字化けで悩んでいます。
ホームページビルダーShift_JISで使っている場合は問題ないですが、
ワードプレス(UTF-8)やロリポブログ(EUC)だと文字化けしちゃいます。
いろいろと試してみたのですが、まったく駄目です。
すいませんが、どこを直せばいいのでしょうか?
よろしくお願いします。





520 名前:nobodyさん mailto:sage [2007/11/30(金) 12:36:34 ID:???]
>>519
そのURLのサポート掲示板へ逝け

521 名前:超初心者 [2007/11/30(金) 13:03:46 ID:Hc83DxRo]
確かにサポート掲示板で書けばいいのですが、
この掲示板2006/8で終わっているようでらちが明かないので質問しています。
すいませんが、どなたか手助けお願いします。

522 名前:nobodyさん mailto:sage [2007/11/30(金) 13:30:01 ID:???]
>>519 スレ違い

CGI設置について質問【Part3】
pc11.2ch.net/test/read.cgi/php/1176143582/

523 名前:nobodyさん [2007/11/30(金) 15:31:46 ID:8pPZwPu7]
どうも、こんにちは。
CGIゲームの改造(TOWN)をしている者です。
独自タグを導入しようと思っています。

#タグ処理
$in{'a_com'} =~ s/\[i\](.+?)\[\/i\]/<em>$1<\/em>/gi;
$in{'a_com'} =~ s/\[b\](.+?)\[\/b\]/<strong>$1<\/strong>/gi;
$in{'a_com'} =~ s/\[u\](.+?)\[\/u\]/<u>$1<\/u>/gi;
$in{'a_com'} =~ s/\[pre\](.+?)\[\/pre\]/<pre>$1<\/pre>/gi;
$in{'a_com'} =~ s/\[s([1-7])\](.+?)\[\/s\]/<font size="$1">$2<\/font>/gi;
$in{'a_com'} =~ s/\[c=(\S+)\](.+?)\[\/c\]/<font color="$1">$2<\/font>/gi;
$in{'a_com'} =~ s/</</g;
$in{'a_com'} =~ s/>/>/g;
$in{'a_com'} =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g;
$in_a_com = $in{'a_com'};#koko2006/11/07

このような感じにしたのですが、独自タグを記述してもタグのままでてしまいます。
独自タグを入力すると、変換はされるのですが、結果が表示されません。

このような場合どのようにすれば良いでしょうか?
宜しくお願いします。

524 名前:nobodyさん [2007/12/01(土) 04:28:25 ID:p/Twqk8/]
>>523
独自タグ処理の後に<と>に変換してるからじゃない?

525 名前:nobodyさん [2007/12/01(土) 04:29:21 ID:p/Twqk8/]
>>524
&lt;&gt;な

526 名前:nobodyさん [2007/12/03(月) 02:01:35 ID:J4A8iRzG]
レンタルサーバーでインストール済みのモジュールを調べました。

そのときの一覧で、頭に5.8.8とかの数字がついているのがあって、
その意味がわかりません。

例えば
5.8.8::XML::XPath
というのが一覧に載っていたのですが、そのほかに
XML::XPath
というのも載っています。

これら二つはどう違うのですか?

527 名前:nobodyさん mailto:sage [2007/12/03(月) 09:47:05 ID:???]
そのモジュール一覧を調べるスクリプトの
アルゴリズムが腐ってんだろうよ。

528 名前:nobodyさん [2007/12/06(木) 00:17:44 ID:HgYNR+TB]
データベース処理に関してDBIを使用していますが、デバッグ用にクエリを表示もしくはログを記録したいのですが、どうすればいいでしょうか。

と言うのも、プレースホルダ使ってからクエリ実行する場合、動的なデータに対して「?」をセットしますよね。

このまま自分で記録しようとしても、「?」のまま記録してしまうし
かといってDBI->traceを使うと、余計な情報ばかり出力されます。

皆さんはどのようにデバッグしていますか?


529 名前:nobodyさん [2007/12/06(木) 01:32:40 ID:NHCKs2bj]
あるファイルの一行目の文章のみ手直ししたいと思っています。

自分なりに考えた方法では

open(FILE,"+>./log.dat");
while(<FILE>){
@LOG=$_;
}
$LOG[0]=~/(hoge)(hoge)/;
shift @LOG;
unshift @LOG,"hoge3$2";
print FILE @LOG;

上記では、whileの中で一行目以降の行も配列に格納している点が、初心者の私には無駄に感じてしまいます。
もしこれより簡潔で、サーバーへの負荷も少なくてすむ方法をご存知の方がいらっしゃいましたら、ご教授ください。



530 名前:nobodyさん mailto:sage [2007/12/06(木) 05:14:19 ID:???]
>>528
Perlではないけれども、自鯖環境なら、my.cnfに
log=/var/log/・・・ てな感じで記録すれば全てのクエリのlogが取れる。
レン鯖環境でも、デバッグ目的なら、自前のPCで同じことをすればよい。
(UnixだろうとWinだろうと、mysqlのversionが同じなら、クエリレベルでは全くの互換)

>>529
open(FILE,"<./log.dat");
open(OUT,">./logout.dat);
$row = <FILE>;
$row = うんたらかんたら・・・
print OUT $row;
while(<FILE>){ print OUT $_; }
close(FILE);
close(OUT);

オレならこうするかな。
既存ファイルの”ケツ”に足すのなら、">>file.name"で簡単だけど、頭だけを変更したいとなったら、
ファイルの内容を一旦全て読み込まないといけなかったんではなかったかな。
(変更前と変更後の一行のバイト数が同じになるとは限らないから。)
この後でRenameするなどしたらよし。
(自分の場合は、どんな時でも、基本的に変更前のbackupをとって置く性質なんで、確実に不要とわかってから元を消すようにしてる。)

もうひとつゆうと、ウチの環境では、
@log = <FILE>; とするよりも、 while(<FILE>){ push(@log,$_) } とか、 $log = join('',<FILE>);とかするほうが、
圧倒的に早い(WinXp + ActivePerl-5.8.8で、1.5倍〜2倍くらい早い。よその環境は知らない。)

531 名前:nobodyさん mailto:sage [2007/12/06(木) 05:29:50 ID:???]
>>529
ああ、その前に、そのコードそのままなら、
本当に $log[0] に一行目が入っているかい?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<307KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef