- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:54:12 ]
- "The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。 CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 (WEBプログラミング板 pc8.2ch.net/php/ ) CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2006/12/21現在の最新版: 5.8.8 ● 2006/12/21現在の開発版: 5.9.3 前スレ Perlについての質問箱 29箱目 pc11.2ch.net/test/read.cgi/tech/1166708139/ リンク集は>>2-3 過去スレは>>4
- 657 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:58:21 ]
- 文字列化する必要があるんじゃね?
my @b = map "$_", @a[1..8];
- 658 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:14:52 ]
- >>656>>657
激しくトンクス! そういえばfor(0..7)とか使ってました。 @a[1..8]という書き方があったとは。
- 659 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:23:29 ]
- $a @a
^これや^これの名前ってなんだっけ?
- 660 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:39:44 ]
- 普通にドルとアットでいいんじゃない?
なんか$でプレフィクスとか見つけたけど。 @は配列ArrayのAを表し $は・・・なんだっけ?Sからはじまるなんかの単語じゃなかったっけ? %は/の左の丸がキーで、/の右の丸が値を示すんだっけ? なんかそんな感じ。 どうせ声出して読まないし気にするまでも無いような・・・
- 661 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:45:22 ]
- ファニー文字?
- 662 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:57:19 ]
- ああ、思い出した。$はスカラーのS。
- 663 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 18:59:10 ]
- >>659,660,661
sigil だと思う。 sigilsと複数形にすることも多いが
- 664 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:10:35 ]
- ネットショップなんかで自動監視・購入できるスクリプトが組めるらしいのですが
どういったものなんでしょう。 役に立ちそうなサイトがあったら教えてください。
- 665 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 19:44:38 ]
- >>663
あーそれそれ。さんくす
- 666 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 20:34:14 ]
- なんかPerlスゲー人が書く魔法みたいなコードなんか紹介してください
友達が言ってたんですが他の言語だと20行くらいかかりそうな処理も1行で記述できるくらい魔法ちっくなことができるって聞いたんですが本当ですか?
- 667 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 20:51:05 ]
- 本当です
すべてが魔法なので紹介しきれません
- 668 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:07:49 ]
- 少なくともCOBOLで20行文の命令を1行にまとめることはできるよ。
- 669 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:14:04 ]
- 確かにPerlを使えばどんな複雑な処理でも一行でかけるなw
- 670 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:31:15 ]
- 何行で書けるとかPerlたん変態っぷりはそんなことじゃないだろ
- 671 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:36:44 ]
- python見習え
- 672 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:46:12 ]
- >>667-668
もっとやさしく!! >>669 a + b; b + c; c + d; ... はい1行wwwwwとかは禁止なんです >>670 もっとやらしく!!
- 673 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:03:30 ]
- >>666
では、とっておきの電卓プログラムを紹介しようか。 C++で書くと、何十ステップも必要だろう。 while(<>){print eval($_)}
- 674 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:23:07 ]
- >>673
カレントディレクトリ以下のファイルがすべて消えました!><
- 675 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:43:53 ]
- >>672
きもい
- 676 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:50:56 ]
- それも計算によって実現してるからな
- 677 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:55:32 ]
- >>674がマジなのか気になる。
>>673をしたらキーボードからどんな文も実行できてしまうよな? >>674を書いて実行してキーボード触らずにマウスで閉じたら何も起きないよな? 恐怖体験アンビリーバブー
- 678 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:56:20 ]
- ちょっと安価ミスしたが気にしないでくれorz
- 679 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:18:11 ]
- 1行で書けるかれしれんが、書く人の労力は20行だよ。
- 680 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:30:26 ]
- でも短く書く技術は知っておきたいかも。
サブルーチンは、多少汚くても短くまとめたいし。 なんか良いサイト無い?
- 681 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:31:39 ]
- 結局、正規表現アクロバットきぼんってこと何でしょw
- 682 名前:クロニクル ◆ob60wHXQlc [2007/05/20(日) 23:32:46 ]
- VISTAでACTIVE PERLをインストールしたいんですが、
Build 820 setup の CustomsetUP のところでInnstlationErroが出るんです。 初心者なのでわからないことがたくさんあります。 以前XPで何度かインストールしたのですが、VISTAになったとたんできなくて 苦労しております。どうかご教授お願いいたします。
- 683 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:34:48 ]
- >>680
一子相伝も特殊技術だから。
- 684 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:45:25 ]
- 正規表現使ってアクロバットするのと、正規表現使わずに少し長いの書くのって、
正規表現使ったほうが早いとかある?
- 685 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:48:10 ]
- そんなの場合によるとしか言いようがないだろ。
- 686 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 23:51:35 ]
- >>680
このスレの前の方だけでもいくつかあると思うよ。 過去ログ辿ればもっとあるし。
- 687 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 00:12:00 ]
- 結城浩の『Perlクイズ』の過去ログ漁ってみるとか
(結城さんではなく回答者が時々アクロバティック)
- 688 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 15:57:04 ]
- >>667のコメントだけで、後はスルーすれば良かったのにな
- 689 名前:8 [2007/05/21(月) 16:50:18 ]
- CGIを自由に使えるようになりたくて独学で勉強しようとしたのですがCGIはPERL
記述?だからと思いPERLの詳しくなればわかると思いこの板にきました。 PERLに強くなるにはなにを学べばいいですか?ラクダ本というのがいいとどっかで 見たのですが間違いないですか? そもそもCGIを自由に使えるようになるのはPERLを詳しくなっても意味ないですか? CGIを自由に扱えるようになりたいので勉強の仕方わかる方お願いします。
- 690 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:54:26 ]
- 日本語がお上手ですね!
- 691 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 16:57:15 ]
- >>1嫁
> CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 > CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 > (WEBプログラミング板 pc8.2ch.net/php/ )
- 692 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 18:50:54 ]
- >>691
向こうでも相手にされていない件についてw
- 693 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:01:22 ]
- >689
かわいそうだからマヂレスしてあげるよ 勉強しなほうが身のため
- 694 名前:8 [2007/05/21(月) 19:01:30 ]
- 気長に待ちますよ^^
- 695 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:01:48 ]
- 相手にできる最低レベルってのはあるからな
- 696 名前:8 [2007/05/21(月) 19:02:41 ]
- 勉強しなほうが身のため
なぜ!?
- 697 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:03:45 ]
- 日本語でおk
- 698 名前:8 [2007/05/21(月) 19:07:37 ]
- 相手にできる最低レベルってのはあるからな
悲しいこと言うなぁ・・
- 699 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:08:32 ]
- しゃぶれよ
- 700 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:11:06 ]
- とりあえず句読点を勉強しる!
- 701 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:37:26 ]
- こういう低レベルな質問はwebprogでやれよ
- 702 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:39:59 ]
- お前が >>8 氏でないことだけは確かだ。名前欄の詐称を止めろ
CGI を覚えるより何より、ここの使い方をまず真鍋
- 703 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:50:23 ]
- そして>699
- 704 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 21:19:43 ]
- >>689
マジレスするのもどうかと思うが、 CGIを勉強したいならラクダ本よりネズミ本がオヌヌメ。 Perlをきちんと習得したいなら、ラクダ本よりリャマ本をまず嫁。 リャマ→ラクダ→ネズミの順で読むといい。 後はWebProg板逝け。
- 705 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 21:23:45 ]
- 逝く前にしゃぶれよ
- 706 名前:8 [2007/05/21(月) 21:24:52 ]
- ここは恐いインターネッツですね
- 707 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 21:38:57 ]
- リャマの次にラクダ読んだら死ぬって
タダで読めるPerl本 ttp://www.perl.org/books/library.html ネズミ(初版) ttp://www.oreilly.com/openbook/cgi/ ただリャマだけは小遣い溜めてでも買うべきだと思うんです
- 708 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:06:21 ]
- 個人的にはリャマの次にCookbookでもいいと思う。
ラクダも読み物として面白いけど、Cookbookのほうが実践的なテクニックを身に付けられるんでないかな。
- 709 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:57:50 ]
- CookbookもいいけどPBPも読んだほうがいいと思う
なんつーか、その、K○NTクローンが増えても困るっつーか
- 710 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:20:38 ]
- 中途半端な伏字を使うやつは大抵頭が悪い
- 711 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:38:13 ]
- やっぱ王道は
○ャ○から入って、○○○と○○○○○○○○を併用さ。 ラクダ?○○○○○○c で十分 …中途半端じゃない伏せ字も頭悪い。
- 712 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:52:26 ]
- Perl Hacksでハァハァする
- 713 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:56:24 ]
- >>711
> ○ャ○から入って、○○○と○○○○○○○○を併用さ。 ジャバ、コボル、N88BASIC? > ラクダ?○○○○○○c で十分 わがんね。 本題のほうは「なんでバレバレの伏せ字を使う人がいるのか」が昔から不思議。
- 714 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:04:42 ]
- perldoc
- 715 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:08:17 ]
- >>713
あえて理由付けするなら、検索に引っかからないため。 まぁ、やってる方の心理としては○○だと思うがw
- 716 名前:713 mailto:sage [2007/05/22(火) 01:20:11 ]
- >>714
ボケが思いつかなくて「わがんね」でした。手間をかけさせてごめんなさい。 >>715 うーん、検索ですか。なるほど。 でも、△△△にする○○の大半は××なだけなんでしょうね。
- 717 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:51:29 ]
- ○○○○、○○○○○○○○。
- 718 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:37:09 ]
- はじめまして。最近Perlを使い始めた初心者です。
useを使用し、下位ディレクトリにあるモジュールを読み込むには use ディレクトリ名::モジュール名; なのはどの初級者本にも書いてあるのですが、 上位ディレクトリにあるモジュールの読み込み方が分かりません。 パスはどう書けばよろしいのでしょうか?
- 719 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 03:48:18 ]
- use lib
- 720 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 07:22:32 ]
- >>710
十代後半の女オタクの馴れ合いみたいで気持ち悪いよね。
- 721 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 08:20:44 ]
- ○まん○
- 722 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 13:39:11 ]
- ○ま○こ
- 723 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:24:14 ]
- ○まんこ
- 724 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:43:31 ]
- 8まんこ
- 725 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:58:39 ]
- レベルの低い会話はwebprogでやれ
- 726 名前:デフォルトの名無しさん [2007/05/22(火) 16:30:10 ]
- >>719
ありがとうございました。できました。
- 727 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:07:33 ]
- >>725
爆笑
- 728 名前:デフォルトの名無しさん [2007/05/22(火) 18:08:03 ]
- cgiでPOSTされたデータを標準入力から一度取得した後
同じプログラム内で再度、標準入力から取得することは可能ですか? 既存のプログラムに、入力チェックを追加したいのですが、2回目はデータが空になります(当たり前? 一応、seekしてみたのですが、うまく戻りそうにありません バカな質問している気がしていますが、「そんなことできるワケねぇだろ、バカ」でも良いのでアドバイス下さい
- 729 名前:デフォルトの名無しさん [2007/05/22(火) 18:11:19 ]
- ワークの変数にとっといたらいいんじゃないの?
- 730 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:23:30 ]
- >>728
>>1嫁
- 731 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:25:33 ]
- 標準入力がSEEKで戻れたらすごいな
過去に戻れるなんて素敵だぜ
- 732 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:26:16 ]
- なるほど、WEBプログラミング板で聞くのが良かった内容でしたか
すみませんでした そちらで質問してみます
- 733 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 18:41:44 ]
- >>731
このコメントだけで十分な説明になってるな
- 734 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:03:04 ]
- CPAN探せばありそうだが普通に変数に入れといたほうが楽だろうな
- 735 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:34:55 ]
- リャマ本なんであんなに高いの?
- 736 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:36:07 ]
- 古本買え
- 737 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 20:45:58 ]
- 2版の厚さがちょうどよかったよね(´・ω・)
- 738 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:49:02 ]
- -P オプション で使えるCのプリプロセッサですが
起動が多少遅くなるので 別な方法がないか教えてもらえませんか 使用用途としては 下記のようなものです 単にifで分けると モジュール部もすべて読み込むようなので 両方ともないとエラーになりました evalで囲めばそれっぽくうごきますが しっくりきません。 #ifdef HOGEHOGE use HOGEHOGE; 〜〜〜 #else use HOGEHOGE2; 〜〜〜 #endif
- 739 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:51:27 ]
- >>738
UNIVERSAL::require 使えば解決するようなコトじゃないかな?
- 740 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:52:13 ]
- 質問では、条件で分けたいのはuseだけじゃないっぽいけど:
use $ENV{'HOGEHOGE'}; とかして環境変数HOGEHOGEから渡せないかなと思ったがダメだった。
- 741 名前:738 mailto:sage [2007/05/22(火) 22:58:53 ]
- >>739-740
趣旨的には 740のとおり useだけじゃなくて 汎用的に使える方法がないかと(まぁ -Pで出来るんですがあんまり標準的じゃないような気がして) 目的としては、環境がある程度違っても ソースを複数管理するのは面倒なので同一ソースで動かしたいです 下記のようなのも出来ると非常に助かります #ifdef hogehoge while(1) { #endif 〜〜〜〜〜 #ifdef hogehoge } #endif
- 742 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:39:45 ]
- evelじゃちょっと違うよな
- 743 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:41:58 ]
- BEGIN { eval }
かと思ったけどなんか違うよね
- 744 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:20:43 ]
- よく判らんのだが、
-P 使うからには、pure perl じゃなく C 関係? それとも pure perl でホスト毎に挙動を変更したいの? 前者だったら、 Inline::C と後述を噛み合わせて… 後者だったら、ベタだけど Sys::Hostname で hostname ゲットして BEGIN{if ( $hostname ...){}else{} } あたり? 後者なら、もっとべたべたにソース全般で挙動を分けられるし、 実際やってるけど、前者だったらやろうと云う気にもならぬ。 って素人の口出しすまぬ。
- 745 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:29:53 ]
- OOで書いて環境依存部分はサブクラスに分けるが良いよ
- 746 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:52:02 ]
- 俺は環境依存部分は、モジュール化して突っ込んであるなあ
ソコでSys::Hostnameは使っているけど、もっと良い手があれば知りたいものだ
- 747 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 01:16:42 ]
- 俺はwindowsローカル時はbatファイルで適当に環境変数設定して
その環境変数によってunix系の時と動作変えてる。
- 748 名前:738 mailto:sage [2007/05/23(水) 08:38:37 ]
- >>744
当面の目標としては PurePerlでmod_perl2(ModPerl::RegistryPrefork)とFastCGIで 同一ソースを使えるようにしたいと思ってます FastCGI対応にするためには 読み込みモジュールの差し替え(CGI->CGI::Fast)とループ処理が増えるので 738,741のようなことができないかなと思った次第です、 良い方法がないかなと
- 749 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:35:25 ]
- そんな用途かよ
Catalystあたりを参考にしれ
- 750 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:49:31 ]
- なるほどFastCGIか。
Rubyだとわりと簡単にFastCGI対応できるみたい。 Perlでも同じようにできないかな? 既存のCGIを変更無しでFastCGIに ttp://sugi.nemui.org/wiki/%B4%FB%C2%B8%A4%CECGI%A4%F2%CA%D1%B9%B9%CC%B5%A4%B7%A4%C7FastCGI%A4%CB
- 751 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 09:55:29 ]
- てか、CatalystとかCGI::Applicationとかのフレームワーク使えばいいじゃん。
Catalyst::Engine::FastCGI search.cpan.org/~mramberg/Catalyst-Runtime-5.7007/lib/Catalyst/Engine/FastCGI.pm CGI::Application::FastCGI search.cpan.org/~naoya/CGI-Application-FastCGI-0.02/lib/CGI/Application/FastCGI.pm
- 752 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 12:07:10 ]
- >>738がなんでわざわざWebProg板からこっちに着たのかわからない
- 753 名前:デフォルトの名無しさん [2007/05/23(水) 14:12:31 ]
- すみませんが 質問させてください
あるファイル(数万行の数字データ)の上から1行ずつ順番に読み込んで 最終行になるとまた1行目に戻って・・・という作業をしたいのです 途中でプログラムを閉じて再開したときも次の行から開始が可能であれば もう言うことナシですが,残念ながら自分では何とも出来ず 丸2日間ネット上で調べに調べ srand(); open(FILE, "data.txt"); rand($.) < 1 and $line = $_ while <FILE>; close(FILE); $line =~ s/\n//g; とランダムで1行読み込む仕様で妥協するのが限界でした もし上記作業がperlで可能でしたら申し訳ないですが 教えていただけないでしょうか 可能な方いらっしゃいましたら どうかお願いします。
- 754 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:13:46 ]
- いつ終わるんだそれは
- 755 名前:753 mailto:sage [2007/05/23(水) 14:27:55 ]
- すみません
イカのような感じで半永久的に作業が続くわけでして・・・^^; print <<"_HTML_"; Content-type: text/html <html><head> <meta http-equiv="refresh" content="5; url=aaa.cgi">
- 756 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:34:48 ]
- 何行目まで読んだかどこかに書いとけばいいじゃん。
- 757 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:38:03 ]
- >>755の「イカ」がどっから出てくるのかがわからん。
とりあえずCGIは置いといて、まずファイルの入力の基本をググって調べればいいんじゃね
|

|