1 名前:nobodyさん mailto:sage [2006/09/10(日) 13:33:48 ID:???] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 Perl使いが優しくコメントを返しますが、 お礼はPerlの布教と初心者の救済をお願いします。
590 名前:nobodyさん mailto:sage [2007/12/23(日) 05:02:25 ID:???] 自分で作る気があるなら、どこまで作ったか晒せ。 自分で作る気がないなら、仕様をまとめなおして、↓こっちで聞け。 Perlでリクに答えるスクリプトを作るスレ pc11.2ch.net/test/read.cgi/tech/1086143976/l50
591 名前:nobodyさん mailto:sage [2007/12/23(日) 08:20:22 ID:???] 返答の意図が分かってないだろ。 まず基礎を学べ。 んですぐ人に答えを求めようとせず頭使って考えれ。
592 名前:nobodyさん [2007/12/23(日) 10:02:40 ID:01+8BPxk] 半年ぶりに書こうと思ったら驚くほどPerlに関する記憶が飛んでる 記憶をよみがえらせる方法を教えてくれ
593 名前:nobodyさん mailto:sage [2007/12/23(日) 10:05:44 ID:???] とりあえずスクリプト眺めたり、ちょっと書いたりしてるうちによみがえるんじゃね? それができないなら、アルツハイマ−かもしれないから病院に逝ったほうがいいな
594 名前:nobodyさん [2007/12/24(月) 01:41:03 ID:yCHoznYX] 漏れも吹き飛んだ 1からじゃ何も書けなくなったw
595 名前:nobodyさん mailto:sage [2007/12/24(月) 07:17:33 ID:???] PerlとPHPで開発してると、やっぱりPerlの方が書きやすいな。 PHPなのに、気がついたら途中からPerlになってたよw
596 名前:nobodyさん mailto:age [2007/12/24(月) 12:07:01 ID:???] 質問です。 ファイルをオープンし、それを一旦最後まで読み込んだ後、 またそのファイルを最初から読み取りを行いたい場合は、 一度ファイルを閉じるしか方法がないのでしょうか。 ファイルで閉じたり開いたりを多く行うと、処理が重くなったり、 ファイルの競合で問題が起きるので、出来れば避けたいのですが。 <コーディングの例> # ファイルを開く open ( FL, "dat.csv" ); # ファイルを最後まで読む。 while( $line = <FL> ){ # 何らかの処理 } close( FL ); open ( FL, "dat.csv" ); # ファイルを最後まで読む。 while( $line = <FL> ){ # 何らかの処理 } close( FL );
597 名前:nobodyさん mailto:sage [2007/12/24(月) 12:52:16 ID:???] ファイルの競合で問題ってのが意味わからんが やりたいことはseekでできる
598 名前:596 mailto:sage [2007/12/24(月) 13:19:13 ID:???] >>597 seekで検索してみたところ、すぐに見つかりました。 ありがとうございました。 ファイルの競合で問題というのは、ファイルのロックで 解決することなので、ここでは関係ありませんでした。
599 名前:nobodyさん mailto:sage [2007/12/24(月) 16:29:55 ID:???] Perl5からオブジェクト指向が導入されたということですが、 Perlのプログラマーは、オブジェクト指向プログラミングを メインで行っているのでしょうか。 それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の 構造化プログラミングをしているのでしょうか。 多くの方はどちらでやっているのかを知りたいです。
600 名前:nobodyさん mailto:sage [2007/12/24(月) 16:54:59 ID:???] >それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の >構造化プログラミングをしているのでしょうか。 の部分が突っ込みどころ満載だが、それは使っていくうちに知ってもらうことにして、 とりあえず、Perl5が出てから10年以上たっているので、Perl4の互換性を気にする必要は全くない。 オブジェクト指向も、使いたくないなら使わなくていい。
601 名前:nobodyさん mailto:sage [2007/12/24(月) 17:02:48 ID:???] >>600 ありがとうございました。
602 名前:nobodyさん mailto:sage [2007/12/24(月) 17:22:38 ID:???] >>599 「多くの方」はダウソしたcgiをうpしてパーミッション設定するだけだろ。 中途半端な知識でオブジェクト指向を目指すと余計に意味わかんないプログラムになる。 オブジェクト指向の考え方とPerlでのオブジェクト指向の実装方法を十分理解してないなら オブジェクト指向に手を出さない方が良い。
603 名前:nobodyさん mailto:age [2007/12/25(火) 10:20:04 ID:???] >>602 レスありがとうございます。 ちょっと確認をしたくて質問なのですが、 PerlでCGIを行う場合に限定すると、サーバのメインメモリにいつまでも 情報が残るわけではないので、オブジェクト指向プログラミングは、 状態の保存などを生かしたものというより、モジュール化を行い、 関数名やグローバル変数名が競合するのを防ぐ程度の意味合いしかないように 思うのですが、この解釈はあっているのでしょうか。
604 名前:nobodyさん mailto:sage [2007/12/25(火) 11:34:27 ID:???] それはオブジェクト指向プログラミングの利点の1つではあるが全てではない。 かといって全部ここに書いてるとキリが無いからググってこい。 っていうか結局何が知りたいんだ? どんな答えが欲しいんだ?
605 名前:nobodyさん mailto:sage [2007/12/26(水) 06:07:36 ID:???] サーバのメモリにいつまでもプロセスとして残る場合もあるよ。
606 名前:nobodyさん [2007/12/26(水) 12:46:37 ID:SU+LBgfr] perlで最規模なCGIゲーム(有名な箱庭やFFA以上)を作ろうと猛勉強してるのですが まったくの初心者なのでサーバーに対する負荷とかまったく考えていませんでした。 そこで疑問点が3つあります。 ・MySQLが軽いとかよく聞くのですが、 本気でCGIゲームを開発する場合サーバーの負担を抑えるためどういう勉強をしていったほうがいいのでしょうか? ・perlではなくphpのほうに切り替えたほうがいいのでしょうか? ・プログラムを書き終えてperl or phpを実践した後でもMySQLに対応するのは簡単なんでしょうか? (難しそうなのでperl or php→MySQLではなくプログラムを書き終えた後にMySQLをやったほうが モチベーションも保てるかと思って。) phpの話題もでてますが、今はperlのほうを勉強していてこちらのほうが聞きやすいと思って。 よければご教授よろしくお願いいたします。
607 名前:nobodyさん [2007/12/26(水) 12:52:25 ID:SU+LBgfr] ×最規模→○大規模
608 名前:nobodyさん [2007/12/26(水) 14:37:40 ID:9oL1uy7O] レンタル掲示板などで、 www. ○○.com/?uid=▲▲▲ 見たいなURLがあるのですが これを http://▲▲▲.○○.com/ にしたいと思っています。 これを実現するにはどのような手段が用いられるのでしょうか? ご指導や参考URLを頂ければ幸いです。 よろしくお願いします。
609 名前:nobodyさん [2007/12/26(水) 18:35:59 ID:8VJWqxjl] >>606 すいません prog板初心者スレで聞いてみます、スレ違いだったかな
610 名前:nobodyさん mailto:sage [2007/12/26(水) 22:20:24 ID:???] >>608 perlよりもウェブ鯖で変換した方がいい apacheならmod_rewriteとかを使う
611 名前:nobodyさん mailto:sage [2007/12/27(木) 14:37:45 ID:???] >>604 ありがとうございます。 聞きたかったのは、Apache + Perl でプログラムする際、 オブジェクト指向で組むと、利便性があがるかどうか、 という点です。 ネット上のサンプルソースでも、オブジェクト指向 で組まれていなかったので、何らかの理由があり、 さほど利便性がないのかと思ったのです。 できましたら、この、「何らかの理由」もあわせて 回答をいただけたらと思っています。 オブジェクト指向一般の利便性については、自分で調べますが。
612 名前:nobodyさん mailto:sage [2007/12/27(木) 14:43:25 ID:???] >>605 それは、サーバのエラーや、Perlなどのプログラムミスによる ものということですよね? そのメモリに残ったプロセスを利用してということは ないと解釈していたのですが。
613 名前:nobodyさん mailto:sage [2007/12/27(木) 15:08:55 ID:???] >>612 mod_perl + DBI なんかでは、コネクションプーリング出来たりとか そんなんじゃないのかね?
614 名前:nobodyさん mailto:sage [2007/12/27(木) 17:41:06 ID:???] perlにて、「use strict」を書くとエラー(500)となってしまいます。 これをコメントアウトすると、正常に動いていますので、 パーミッションなどの設定が原因ではないと思います。 疑われる部分はどんなことがあるのでしょうか。
615 名前:nobodyさん mailto:sage [2007/12/27(木) 17:46:33 ID:???] すみません。質問です。 package関連の記述方法についてです。 定義したクラスのメソッドにおいて、そのクラスがもつ別のメソッドを 呼び出すということは出来ないのでしょうか。 package ClassA; sub funcA{ print "test"; } sub funcB{ &funcA; } などと記述してみたのですが、エラーがでてしまいます。 &ClassA::funcA; としてもダメでした。
616 名前:nobodyさん mailto:sage [2007/12/27(木) 17:57:54 ID:???] 全角スペースでインデント(字下げ)したらエラーになるよ
617 名前:nobodyさん mailto:sage [2007/12/27(木) 19:24:37 ID:???] >>614 error_logにみんな書いてある。
618 名前:nobodyさん mailto:sage [2007/12/27(木) 19:37:01 ID:???] >>616 全角スペースでインデント(字下げ)してるのは、2chで 見やすくするためです。先頭に半角だと無視されますからね。
619 名前:nobodyさん [2007/12/27(木) 21:40:34 ID:HdAuax/Z] >>593 うむ。書くしかないよな
620 名前:nobodyさん mailto:sage [2007/12/27(木) 23:08:07 ID:???] >>615 最後に 1; を書いてみ
621 名前:nobodyさん mailto:sage [2007/12/28(金) 00:51:11 ID:???] >>620 レスありがとうございます。 最後に「1;」は書いてます。 メソッド呼び出し部分をコメントアウトすると 動作はするので、メソッド呼び出し部分がおかしいのでは、 と思うのです。 メソッド呼び出しを記述すると、動きはするのですが、 そこで停止してしまうのです。 念のための確認ですが、同じクラス内のメソッド呼び出しの 記述方法はこれであっているとみてよいのでしょうか。 それとも、「ClassA::funcA」などと記述すべきなのでしょうか。
622 名前:nobodyさん mailto:sage [2007/12/28(金) 02:36:45 ID:???] >>621 ウチの環境で、上のコードそのままやってみたけど、 &funcB(); で、ちゃんと'test'と出力されたべ。 呼び出し側のスクリプトの問題じゃないのかな? 以下呼び出し側。 use ClassA; ClassA::funcA(); ClassA::funcB(); ---出力---- test test 環境 WinXp SP2 ActivePerl 5.8.8-build822 This is perl, v5.8.8 built for MSWin32-x86-multi-thread
623 名前:nobodyさん mailto:sage [2007/12/28(金) 02:51:08 ID:???] >>611 ていうかオブジェクト志向のメリット、デメリットを勉強すれば ネット上のサンプルソースの例が少ない理由はすぐわかる。
624 名前:nobodyさん mailto:age [2007/12/28(金) 13:27:40 ID:???] 質問です。 継承に関して、ネットを調べていると、コードの書き方が 2通りあるようですが、これはどういう解釈をしたらよいのでしょうか。 ClassAが継承もととなる場合 use base qw( ClassA ); @ISA = qw ( ClassA ); use base qw()を使う方法 www15.plala.or.jp/h-kihara-home/prog/perl/ooperl.html www.rwds.net/kuroita/program/Perl_oo.html#base @ISAを使う方法 www.rfs.jp/sb/perl/04/03.html bulknews.net/lib/mailmag/22/mag.txt 一方の書き方が古いという類なのでしょうか。 それとも、継承においては特に出てこない、何か違う意味が 含まれているのでしょうか。 お願い致します。
625 名前:nobodyさん mailto:sage [2007/12/28(金) 14:37:39 ID:???] 今までVisual Basic や java をやってきていた者です。 Perlの場合以下のようにドキュメントとしてコーディング規約は まとめられてないのでしょうか。 www.objectclub.jp/news/community/codingstandard/
626 名前:nobodyさん mailto:sage [2007/12/28(金) 18:56:10 ID:???] >>624 perldoc base >>625 ない
627 名前:nobodyさん mailto:sage [2007/12/29(土) 00:20:43 ID:???] >>622 もう一度0からコードを書き直してやってみたら 動きました。 何が悪かったのだろう・・・ 全角スペースが入ったりしていると、赤く表示が出る エディタを使っているのですけどね。 原因が分かりませんが、質問の内容は解決しました。 ご迷惑をおかけしました。
628 名前:nobodyさん mailto:sage [2007/12/29(土) 09:32:18 ID:???] >>623 Perlのオブジェクト指向を調べてみたのですが、なんだか 完全にオブジェクト指向に対応した言語ではなく、 package や ハッシュ を用いて工夫してオブジェクト指向を 実現してるみたいなものですね。 メンバやメソッドにも外部からのアクセス制限をかけたり 出来なさそうだし。 PerlをCGIでやる場合は、まず、GETやPOSTを取得して どの関数に飛ぶのかを判定し、その関数を書いていくという 処理しかないので、構造化とさほどかわらないのかもと思いました。 ありがとうございました。
629 名前:625 mailto:sage [2007/12/29(土) 11:06:25 ID:???] >>626 どうしてないのでしょうか。 Perlは歴史が長い分、何かノウハウを集めたものがあるかと思ったのですが。
630 名前:nobodyさん mailto:sage [2007/12/29(土) 11:19:00 ID:???] >>629 オマエが作れよ 俺は無視するが
631 名前:nobodyさん mailto:age [2007/12/29(土) 14:02:28 ID:???] ハッシュを宣言し、それを関数に渡す処理をしたいのですが、 Perlのサイトにはそのサンプルが載っていなかったので、 自分なりにコードを書いてみました。 ttp://www.rfs.jp/sb/perl/02/05.html ttp://www.site-cooler.com/kwl/perl/4.htm 関数に渡すときのコードの書き方や、受けるときのコードの書き方において、 これが偶然動いているだけなのか、不安になって質問してみました。 書き方は基本的にこれで良いのでしょうか。 やりたいことは、「ハッシュと数値を受け取り、処理を行う関数を 定義すること」です。 sub tt(){ my %t = @_; print $t{"水"}; print "\n"; print $_[1]; } %c; $c{"月"} = 1; $c{"火"} = 2; $c{"水"} = 3; &tt(%c,1);
632 名前:nobodyさん [2007/12/29(土) 15:00:37 ID:CoF2fqIA] sub tt { my ($t,$n) = @_; print $t->{"水"}; print "\n"; print $n; } %c; $c{"月"} = 1; $c{"火"} = 2; $c{"水"} = 3; &tt(\%c,1);
633 名前:631 mailto:age [2007/12/29(土) 15:52:15 ID:???] >>632 すばやいレスありがとうございます。 いろいろ試してみて気づいたのですが、$_[1]としても、 2番目に指定した引数が取れるわけではないのですね。 今回は偶然$c{"月"}の1が表示されていただけなのには 気づきませんでした。 あと、ハッシュを関数に渡す場合は参照渡しの方が良いのですね。 非常に助かりました。
634 名前:nobodyさん mailto:sage [2007/12/29(土) 17:19:50 ID:???] >>626 さんくす
635 名前:nobodyさん mailto:sage [2007/12/29(土) 20:00:55 ID:???] >>629 Perlベストプラクティス
636 名前:nobodyさん mailto:sage [2007/12/29(土) 20:26:23 ID:???] >>629 理由は大まかに言って、 ・ コーディングの自由度の高さこそがPerlの特徴 → コーディング規約で縛ったらPerlらしくない ・ Perlのコーディングスタイルとしてキーストロークをいかに減らすかを重視するスタイルが存在する → キーストロークを減らす派にとってコーディング規約なんて邪魔以外のなにものでもない ・ スクリプト言語なので元の用途は自前のツールをお手軽に作る事だった → 自分専用の道具を作るのにJIS規格とかを気にするヤツはいないのと同じでコーディング規約なんてキニシナイ ・ スクリプト言語はコンパイラ言語と違って大規模開発に向いてないと信じられていた → 小規模ならコーディング規約なんていらない。 って感じだな。 プロセッサも高性能化し、スクリプト言語でも十分に大規模開発が可能になったが、 ・ 未だにキーストロークを減らす派の存在が大きい ・ CPANなど充実したライブラリの存在で実際にコーディングする量はそれほど増えてない って理由から、わざわざコーディング規約を決めようとする動きも存在しないわけ。 使いたいものが、この世に存在しないなら自分で作ればいい。 もし、藻前さんがPerlのコーディング規約が欲しくて作るというなら、 目を通して意見を言うぐらいの手伝いはこのスレの人もやってくれると思う。 まあ、使う人がそんなにいるとは思えないが。
637 名前:629 mailto:sage [2007/12/30(日) 19:23:31 ID:???] >>636 詳細な説明のレスありがとうございます。 自分でもPerlについて調べていたのですが、似たようなことが書いて ありました。自由度の高さが売りなので、逆に規約が無いということ ですね。納得しました。(TMTOWTDIと呼ぶみたいですね。) スクリプト言語関連の部分は調べた範囲ではなかったので、非常に 参考になりました。歴史的な経緯もあるのですね。 私は今までVBなどをやっていたので、Perlの規約が無いのには違和感を 感じますが、自分がなれている独自の規約で書いていこうと思います。 こうなると、コーディング規約よりも「こういう場合はこういう コードを書くと便利だ」といった、Tips系のものを集めた方が よさそうな気もしました。 例:POSTで受け取ったデータは、foreachを用いてハッシュに入れると良い。 この方法のメリットは〜〜。デメリットは〜〜。 詳しく考えがまとまったらまた相談します。ありがとうございました。
638 名前:nobodyさん mailto:sage [2007/12/30(日) 20:27:22 ID:???] >>637 use CGI; my $q = new CGI; print $q -> param( 'hoge' ); これよりも簡単に書けるなら使ってやる。
639 名前:629 mailto:sage [2007/12/30(日) 20:56:34 ID:???] cgi.pmというのがあったんだ。知らなかった。 今まで読んでたサンプルソースにはそんなのが なかったので知らずに全部コード自作してたよ。orz
640 名前:nobodyさん mailto:age [2007/12/31(月) 10:57:08 ID:???] CGIの実行を制限する方法についての質問です。 例えば、2ちゃんねるは、別のサイトやローカルPCに保存したhtmlファイル から「書き込む」をしてもエラーが出て受付けない仕様となっていますが、 こういった不正な入力を防ぐには、具体的にどういったコードを書いたら よいのでしょうか。環境変数あたりで判断して行うのでしょうか。
641 名前:nobodyさん mailto:sage [2007/12/31(月) 15:09:23 ID:???] 一番簡単な方法は環境変数だわな if ($ENV{'HTTP_REFERER'} !~ m!^\Qhttp://俺のサーバ/cgiのパス\E!) { # 外部から書くな氏ねハゲ池沼ボダ抱いて } みたいなかんじで
642 名前:nobodyさん mailto:sage [2007/12/31(月) 15:48:47 ID:???] 先ほどスレ違いをしてしまったので .cgi .plのスクリプトを使いたいのですが どうすれば実行されるのですか? クリックしても.exe .batみたいに動かないし… やり方を教わったのですが 意味がわからないし… 教えてください お願いします
643 名前:nobodyさん mailto:sage [2007/12/31(月) 15:51:39 ID:???] >>642 って何?いろんなところにコピペしてるのかな? pc11.2ch.net/test/read.cgi/php/1187729623/443
644 名前:640 mailto:age [2007/12/31(月) 19:09:34 ID:???] >>641 レスありがとうございます。 書き込みをみて、$ENV{'HTTP_REFERER'}をキーワードで 検索をしてみたのですが、書き方は何種類かパターンが あるのが分かりました。 $site = "http://俺のサーバ/cgiのパス"; if($ENV{'HTTP_REFERER'} !~ /$site/i) if($ENV{'HTTP_REFERER'} !~ /^$site/) この書き方においては、これが一番いいなという結論のような ものはないのでしょうか。 改行コードの変換の仕方の解説で、こういったサイトを 読んだことがあるので、ちょっと不安になって聞いてみました。 ttp://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
645 名前:638 mailto:sage [2008/01/02(水) 18:35:41 ID:???] >>639 まぁ、おいらも最初は自作してたんだし。 それに、自作したからこそ理解できた部分もあるだろう? 心配するな。みんな同じ道を歩んできた。 >>640 参照元は偽装できるから、セッション利用するのがいいかもね。
646 名前:640 mailto:age [2008/01/04(金) 00:25:33 ID:???] >>645 ヒントありがとうございます。調べてみます。
647 名前:nobodyさん mailto:sage [2008/01/04(金) 14:22:05 ID:???] 確認ですが、CGI.pm のモジュールでは、FORMタグを書いた際に 改行されないようにするのが出来ないですよね? 具体的には、↓これをFORMタグ内に記述したりするものです。 style="float:right" 改行されるのが嫌ならば、FORMタグをTABLEタグの外で記述すれば いい話ではありますが、デザインの都合上でそれが出来ないケースの話です。
648 名前:nobodyさん mailto:sage [2008/01/04(金) 15:55:01 ID:???] >>647 馬鹿じゃないの?
649 名前:nobodyさん mailto:age [2008/01/04(金) 15:56:37 ID:???] かなり初級的な質問ですが、お願い致します。 Perlの場合は、配列と数値を引数で渡すことは出来ないのでしょうか。 例えば、以下のような感じで、@a を @n1 へ、そして、$i を $n2 で 受け取りたいのですが、$n2 値が表示されないのです。 sub FuncA(){ my( @n1, $n2 ) = @_; print "@n1[0]\n"; print "@n1[1]\n"; print "@n1[2]\n"; print "$n2"; } @a = ( "aaa", "bbb", "ccc"); $i = 3; &FuncA( @a, 3 );
650 名前:nobodyさん mailto:sage [2008/01/04(金) 16:19:57 ID:???] リファレンス
651 名前:649 mailto:age [2008/01/04(金) 16:42:27 ID:???] >>650 レスありがとうございます。 以下のように書き直してみたら、ちゃんと3が表示されましたが、 こういう渡し方をするしかないという意味合いですよね? sub FuncA(){ my( $n1, $n2 ) = @_; print "$n1->[0]\n"; print "$n1->[1]\n"; print "$n1->[2]\n"; print "$n2"; } @a = ( "aaa", "bbb", "ccc"); $i = 3; &FuncA(\@a,3);
652 名前:nobodyさん mailto:sage [2008/01/04(金) 17:41:36 ID:???] 他にもやりようあるけど それがいちばん簡単じゃない?
653 名前:649 mailto:age [2008/01/04(金) 20:24:38 ID:???] >>652 他のやりようとはどんなものなのでしょうか? キーワードのヒントでもいいのでお願いいたします。m(_ _)m
654 名前:nobodyさん mailto:sage [2008/01/04(金) 20:38:02 ID:???] すみません質問です。 「Perlは時代遅れだ。」という書き込みを読んでちょっと不安になったのですが、 Perlは本当に時代遅れなのでしょうか? レンタルサーバのサービスでは、低価格でもPerlは確実にサポートしているので、 システムを組む時や、別のサーバにシステムを移項するのには非常に やりやすいものであります。 COBOLがすたれたのは、Excelが出たからというのが一つの要因ですが、 私には、PerlにとってのExcelにあたるものが見当たりません。 なので、PerlはWebプログラミングとしては、まだまだ十分に 活用できる言語だと思っています。 もし、本当にPerlが時代遅れだとすると、PHPやJavaが特有で持っている機能が 必須となるわけですが、それらは具体的にどういう機能なのでしょうか。 よろしくお願い致します。
655 名前:nobodyさん [2008/01/04(金) 22:34:46 ID:zn9OWNdo] >>653 >>652 じゃないけど プロトタイプでできるよ sub hoge ($@) { my $foo = shift; my @bar = @_; } hoge($foo,@bar); たぶんこんな感じだと思う 普通に配列を後で渡せば受け取れるけどね。 $_[0]をshiftしちゃえば同じ事だと理解できればぉk
656 名前:nobodyさん [2008/01/04(金) 22:39:39 ID:zn9OWNdo] >>654 PHPに出来てPerlに出来ない事は無い。 たとえばPHPならDBとの連係が良いとか。 でも、web専門だったり。 javaは規模や対象から違う。 要は目指す所の違いだと思う。 Perlが汚いと思うならRubyやPythonをやれば良い
657 名前:nobodyさん mailto:sage [2008/01/05(土) 01:11:38 ID:???] アンチPerlの人は、時代遅れとか言って叩く。
658 名前:654 mailto:sage [2008/01/05(土) 02:15:25 ID:???] >>656 >>657 ご回答ありがとうございます。 目指すところの違いがあるんですね。 アンチは具体例を出さずにすぐに一般化して 否定しますしね。 安心しました。ありがとうございます。
659 名前:649 mailto:age [2008/01/05(土) 14:25:20 ID:???] >>655 レスありがとうございます。プロトタイプ使えばよさそうですね。 こちらでいくらかプログラムを書いてみたのですが、配列は 必ずあとじゃないとダメみたいですね。 FuncA($@) これだと動くのですが、 FuncA(@$) これだとダメでした。
660 名前:nobodyさん mailto:sage [2008/01/05(土) 18:18:51 ID:???] 質問です。 ナビゲーションバーが<li>タグで フォームがテーブルタグで囲む形で 出力されるテンプレートエンジン。 これは今風ではないでしょうか? 出力されたHtmlを読むと可読性が良さそうなので これで行こうと思っています。用途はテンプレート エンジンの勉強がてら簡易wikiでも自作してみよう と思ってます。どうぞよろしくお願い致しますm(__)m
661 名前:nobodyさん [2008/01/06(日) 01:12:32 ID:4ZDHflzT] ActivePerlにcpan Perl::Tidyしました cygwinからActivePerlを使っているのですが、 $ perltidy としてもcommand not found になります。 どうしたわけでしょう。 cygwin用のperltidyもあるときき、Cygwinからもcpan Perl::Tidyで入れてみましたが、 依然として $ perltidy command not found です。アドバイスください。ヒントでもいいのでお願いします。
662 名前:nobodyさん mailto:sage [2008/01/06(日) 05:36:20 ID:???] 昔俺もやった。確か bin にパスが 通ってないだけだったと思うけど。
663 名前:nobodyさん mailto:sage [2008/01/06(日) 11:16:43 ID:???] >>660 htmlタグの書き方について質問をしたいのであれば、 WebProg板ではなく、Web製作板の方へどうぞ
664 名前:nobodyさん [2008/01/06(日) 13:57:41 ID:4ZDHflzT] >>662 うまくいきました。ありがとうございます。
665 名前:nobodyさん [2008/01/06(日) 15:48:56 ID:srAiPMxF] 関数に配列を渡そうとしているのですがうまくいきません。 呼び出し側 p_html_kotaivew_kekkawrite ($name, @status, $ks, @han1, @han2, @sta1, @sta2); 関数側 sub p_html_kotaivew_kekkawrite{ local($name, @status, $ks, @han1, @han2, @sta1, @sta2) = @_; 〜〜以下略 このような感じにやると、渡した$name以降の配列がすべて@statusに格納されてしまいます。 アドバイスお願いします
666 名前:nobodyさん mailto:sage [2008/01/06(日) 16:21:21 ID:???] リファレンス渡しにしろ
667 名前:nobodyさん [2008/01/06(日) 16:47:29 ID:XbpFSz7R] >>666 リファレンス渡しをしてみましたが、やはり@statusに以降の配列がすべて格納されてしまいます。
668 名前:nobodyさん mailto:sage [2008/01/06(日) 17:03:52 ID:???] >>667 p_html_kotaivew_kekkawrite ($name, \@status, $ks, \@han1, \@han2, \@sta1, \@sta2); sub p_html_kotaivew_kekkawrite{ local $name = @_[0]; local @status = @{$_[1]}; local $ks = @_[2]; local @han1 = @{$_[3]}; local @han2 = @{$_[4]}; } local @sta1 = @{$_[5]}; local @sta2 = @{$_[6]}; }
669 名前:nobodyさん mailto:sage [2008/01/06(日) 17:04:32 ID:???] >>668 ブレスミスすまそ
670 名前:nobodyさん mailto:sage [2008/01/06(日) 17:26:06 ID:???] >>669 なるほどそのように記述すればよろしいのですね。 本当にありがとうございました
671 名前:nobodyさん mailto:sage [2008/01/06(日) 19:10:38 ID:???] >>668 ですでに回答は書いてあるけれど。。。 他の言語を先にやったものだと違和感を感じるものだが、perlの場合は、 関数は、スカラを先に書いて、配列を後に書いた方がいいというルールが あるようだ。
672 名前:nobodyさん mailto:sage [2008/01/06(日) 19:20:03 ID:???] ま、スライスを理解すればそれが普通に・・
673 名前:nobodyさん mailto:age [2008/01/06(日) 19:21:39 ID:???] すみません。質問です。 Perlで検索結果一覧を出すまでや、ファイルへ書き込みをした場合に 要した時間を計り、表示させたいのですが、どのような関数を 使用したらよろしいのでしょうか。
674 名前:nobodyさん mailto:sage [2008/01/06(日) 19:50:13 ID:???] >>673 my $t = time; 〜 #計測したい処理 my $t2 = time; my $sec = $2 - $1; print "$sec秒だったです";
675 名前:nobodyさん mailto:sage [2008/01/06(日) 19:51:41 ID:???] 訂正 × my $sec = $2 -$1; ○ my $sec = $t2 - $t1;
676 名前:nobodyさん mailto:age [2008/01/06(日) 19:58:47 ID:???] >>674->>675 すばやい回答ありがとうございました。
677 名前:nobodyさん mailto:sage [2008/01/06(日) 20:17:39 ID:???] 開こうとしているサイトのURLを入力し、危険なhtmlコードが 含まれているかをチェックするcgiサイトがありますが、 あれはどういう原理で動いているのでしょうか。 自分のサーバとは別の、他のサイトのhtmlファイルを読み込むという事は、 perlのopenでは出来ませんよね?
678 名前:nobodyさん mailto:sage [2008/01/06(日) 20:38:06 ID:???] Socket使うかLWPモジュール使うか
679 名前:nobodyさん mailto:sage [2008/01/06(日) 22:14:19 ID:???] 初歩的な質問ですが、サイトを読んでいてもいまいち分からなかったので こちらで質問させていただきます。 配列の1つの要素への処理の記述方法についてです。 以下のコードを記述しておいて、それに続くものです。 @a = ( "a1", "a2" , "a3" ); 記述1:$a[1] = "b2"; 記述2:@a[1] = "b2"; どちらの記述でも、思うように動作しているので、問題なさそうなのですが、 処理速度や、内部的な動きなどからいってこっちの記述が良いというものや、 多くの人のコーディングはこちらが多いから、などというものはあるの でしょうか。
680 名前:nobodyさん mailto:sage [2008/01/06(日) 22:15:19 ID:???] おま・・・
681 名前:nobodyさん mailto:sage [2008/01/06(日) 22:30:21 ID:???] cgiをブラウザで開いてテストしたいのですが、 ブラウザで開こうとするとエディタが開いてしまいます。 どうすればいいですか?
682 名前:nobodyさん mailto:sage [2008/01/06(日) 23:05:56 ID:???] >>678 ありがとうございます。 さっそくぐぐって見ます。
683 名前:nobodyさん mailto:sage [2008/01/06(日) 23:12:15 ID:???] >>681 必要な環境整えてる? Windowsならば、ActivePerlとApacheをいれて設定するとか、 設定したフォルダにcgiファイルをおいてるかとか。
684 名前:nobodyさん mailto:sage [2008/01/06(日) 23:28:59 ID:???] >>683 ApacheもActivePerlも入ってます。 ブラウザで開こうとするとエディタに実行結果が返ってきてるので フォルダ等も大丈夫だと思います。
685 名前:nobodyさん mailto:sage [2008/01/06(日) 23:31:53 ID:???] エディタに実行結果返ってきてるからってフォルダが正しいとは限らない気が・・
686 名前:nobodyさん mailto:sage [2008/01/06(日) 23:37:38 ID:???] 取り合えずやったことを書き出してみます。 #! c:/perl/bin/perl print "Content-type: text/plain\n\n"; print "Hello Perl !"; を1-1cgiとしてhtdocs/rensyuに保存してブラウザで127.0.0.1/rensyu/1-1.cgi を使って実行すると ファイルをダウンロードしてエディタが開いて実行結果が返ってきてるんですよね
687 名前:nobodyさん mailto:sage [2008/01/06(日) 23:39:11 ID:???] cgi-binに入れようよ・・・・
688 名前:nobodyさん mailto:sage [2008/01/06(日) 23:43:00 ID:???] >>686 httpd.conf の設定は確認してる? 参考にとほほのサイト紹介しておきます。 ttp://www.tohoho-web.com/wwwxx048.htm
689 名前:nobodyさん mailto:sage [2008/01/06(日) 23:49:36 ID:???] text/plainだからじゃないの
690 名前:nobodyさん mailto:sage [2008/01/07(月) 00:02:41 ID:???] >>687 参考にしてる本がhtdocsだったんですよね >>688 設定確認しましたが、大丈夫だと思います。 ちょっと試してみたんですが、 #! c:/perl/bin/perl # CGIヘッダーの出力 print "Content-type: text/html\n\n"; # HTMLの出力 print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<html>\n\n"; print "<head><title>Hello HTML</title></head>\n"; print "<body><p>こんにちは。これはHTML文書の例です。</p></body>\n"; print "</html>"; だとブラウザに出力されました もうわけが分かりません >>689 ソースはテキストどおりなんですよね