Perlコーディング初心者質問スレ Part 57
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/02/25(月) 19:25:51ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >2 以降
前スレ http://pc11.2ch.net/test/read.cgi/php/1189939783/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0896nobodyさん
2008/07/22(火) 19:00:27ID:???ttteditみたいのがいいんだけど。
たとえばforeachって選ぶと、自動で
foreach 変数 リスト {
}
ってテンプレが出てくるようなのがいい。
0898nobodyさん
2008/07/22(火) 19:12:00ID:???ファイルのオープンに成功した時とか、
「ファイル オープン!」
「ギュイイイン」
みたいな。
0899nobodyさん
2008/07/22(火) 20:54:22ID:???0900nobodyさん
2008/07/22(火) 20:54:33ID:???ガショォォォォオオオン!
0901884
2008/07/22(火) 21:30:20ID:???注意が足りなかった点、謝罪するとともに、説明しなおす試みです。
この場合、元のパターンを真偽反転させると分かりやすいかもです。
文字クラス [.-z] は、 [a-zA-Z0-9./] よりも広い範囲を指している点をご理解いただきたい。
つまり s/[.-z]/./g の後でも、[a-zA-Z0-9./] 以外の文字が一部残ってしまう可能性があるわけです。
併せて、ちったあ試してみてくれよ、とお願いしてみます。
>>884 にテストの例も挙げています、ってーか自分の至れり尽くせりっぷりに泣けてきた。
0903nobodyさん
2008/07/23(水) 07:57:47ID:???>>892
python ですら実装してしまった三項演算子にケチを付けてどうする。
>>894
\a はアラームじゃねえか? \A だろ?しかも \A と ^ は挙動が違うし。
>>895
perl5.10 にしろ。指定が無い場合は勝手に文字列か数値か決めてソート
してくれるらしい。
0904nobodyさん
2008/07/23(水) 08:56:46ID:???本当?
% perl --version
This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
Copyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
% perl -e 'print join(",", sort 1,2,10,5), "\n"'
1,10,2,5
0905nobodyさん
2008/07/23(水) 10:47:15ID:???0908nobodyさん
2008/07/23(水) 22:01:45ID:???Open Perl IDE
http://sourceforge.net/projects/open-perl-ide
0909nobodyさん
2008/07/23(水) 23:15:34ID:???おまえらが実際に使っていて、そして
満足しているものを教えて欲しいの。
0910nobodyさん
2008/07/23(水) 23:17:21ID:???0911nobodyさん
2008/07/24(木) 01:54:37ID:???メニューに、ループ、ってのがあって、
そのループってのをクリックすると、
forとかwhileとかforeachとかが出てきて、
そのなかで例えばforeachを選ぶと、自動で
foreach 変数 リスト {
}
とかテンプレみたいに出てきて、あとは
その中の処理を書いていく、っていう。
ようはVBみたいなのが欲しいんだけど、
そういうのってある?
0912nobodyさん
2008/07/24(木) 02:06:09ID:???0914nobodyさん
2008/07/24(木) 02:27:08ID:???パッケージと、
モジュールと、
ライブラリは
どう違うの?
0915nobodyさん
2008/07/24(木) 02:29:34ID:???参考書を読んでいたら、
シフトJISでは、
/(全角のスラッシュ)や、
・(なかぐろてん)や、
タ(はんかくのた)
などを返還しようとすると、
エラーになる、と書いてあるのですが、
その理由として、上記の文字をアスキーコードで
あらわすと、2バイト目が、5Eになっていて、この5Eというのは
^(ハット)のことを表すので、どうやらそれが原因らしいと。
しかし、EUCで書けばこの問題は回避できると。
このように書いてあるのですが、これであってますか?
0916nobodyさん
2008/07/24(木) 03:41:54ID:???0917nobodyさん
2008/07/24(木) 07:21:59ID:???0919nobodyさん
2008/07/24(木) 16:47:52ID:???0920nobodyさん
2008/07/24(木) 20:59:14ID:???モジュールは、クラスや、メソッド、サブルーチンを一塊にして、再利用しやすくしたもの。
ライブラリは、モジュールを集めたもの。集積した場所。Perlでは曖昧な概念になってる。
適当に検索したが、この辺でも読んどけ。
http://www.rfs.jp/sb/perl/04/01.html
あと、クリックとか抜かしてる時点でうんこ
0921nobodyさん
2008/07/24(木) 21:57:32ID:???あと、クリックとか抜かしてる時点でうんこ
0922nobodyさん
2008/07/24(木) 22:37:43ID:???0924nobodyさん
2008/07/25(金) 01:48:34ID:???クリックうんこ
0925nobodyさん
2008/07/25(金) 11:10:09ID:???とりあえず、クリんこ
0926nobodyさん
2008/07/25(金) 11:37:17ID:???クリックして脱がせてる時点でうんこ
0927nobodyさん
2008/07/25(金) 13:18:17ID:???0928nobodyさん
2008/07/25(金) 13:42:17ID:???0929nobodyさん
2008/07/25(金) 19:29:09ID:???クリックうんこ
0930nobodyさん
2008/07/28(月) 12:23:50ID:???同じ処理を何度も繰り返すのですが、過剰に走らせるとシステムが落ちてしまうので
1回の処理につき10秒間sleepさせています。
そのスリープを目に見える形で表してみようと一つ処理が終わるごとに以下のようにしてみました。
print "sleep";
foreach(0 .. 10){
print '.';
sleep(1);
}
print "\n";
1秒ごとにピリオドがprintされることを期待してたのですが、10秒後に
「sleep..........」
とまとめて出力されます。
なぜなのでしょうか?
0932nobodyさん
2008/07/28(月) 13:30:26ID:???頭悪いヤツは消えな。
0933nobodyさん
2008/07/28(月) 13:38:19ID:IfOXe7Fqでググれカス
0936nobodyさん
2008/07/28(月) 22:19:52ID:???Perlって検索できない用語多いよね。
6,000ページのマニュアルを
「全ページ」
暗記して使うようなことが期待されていたのだろうか>設計当時
0937nobodyさん
2008/07/28(月) 23:04:53ID:???0938nobodyさん
2008/07/28(月) 23:55:13ID:???っつってもその名前覚えてなきゃ同じだけど
0939nobodyさん
2008/07/29(火) 00:37:41ID:???論理和ができて、なぜ論理積ができないのか・・・うーん
0942nobodyさん
2008/07/29(火) 01:01:40ID:???それはWEBのどこで読めるの?
0943nobodyさん
2008/07/29(火) 03:19:51ID:???スタート→プログラム→ActivePerl 5.x.x build xxx→Documentation
コマンドライン→perldoc
Web
http://perldoc.perl.org/
と >>2
0944nobodyさん
2008/07/29(火) 14:30:05ID:fy3kWC2sオープンしたソケットにノンブロッキングモードで connect した時、
“Connection refused”を検出するにはどうしたらいいですか?
0945nobodyさん
2008/07/29(火) 15:08:40ID:i5c/JUZY0946nobodyさん
2008/07/30(水) 15:01:51ID:d+B9EpcH0947nobodyさん
2008/07/30(水) 15:56:41ID:8tDIA2tsApache2.0+ActivePerl588の環境です。
これをIIS5.0で運用するかも的な話が出てきまして、IISで動作をテストしています。
Apacheでは、warn "hoge=$hoge"で、Apacheのエラーログにワーニング情報を出力していましたが、
IISではwarnによる結果が表示されません。
IISでは表示できないのでしょうか?あるいは設定次第で表示されたりします?
何か他の方法があれば教えてもらえませんか?
0948nobodyさん
2008/07/30(水) 16:08:44ID:???普通ウォーニングって言わね?
0949nobodyさん
2008/07/30(水) 16:15:21ID:???どんな設計してるのか知らないけど。
0951nobodyさん
2008/07/30(水) 16:38:08ID:???connect(2)のEINPROGRESSの説明をよく読め。
EINPROGRESS
ソケットが非停止 (non-blocking) に設定されていて、接続をすぐに完了することができない。
その場合、 select(2) や poll(2) を使ってそのソケットが書き込み可能になるのを待つことで、
接続の完了を知ることができる。 select(2) で書き込み可能になった後に、 getsockopt(2) を
使って SOL_SOCKET レベルで SO_ERROR オプションを読み出すことにより、 connect() が
成功したか、失敗したかを判断できる。成功の場合 SO_ERROR が 0 であり、失敗の場合
SO_ERROR がここのリストにあるいずれかのエラーコードであり、それにより失敗の原因が
分かる。
0952944
2008/07/30(水) 18:06:58ID:d+B9EpcHでwwwけwwwたwwwww
そのとてつもなく親切なmanは一体どこのww
JMの成果物かしら?
うちのmanはそんな丁寧に書いてないですw
ググったら POSIX を適切に use するようにしておけばコードに対応するエラーメッセージが得られる事も分かりました
果てしなくありがとう♪
>>949-950
うん。
タイムアウト付きでselectしてconnect自体は完了してもconnectに成功したかどうかを調べる方法を知らなかったんだ
0954nobodyさん
2008/07/30(水) 18:42:46ID:???0955nobodyさん
2008/07/31(木) 01:58:02ID:oOtEPfmndebian Etch、Perl5.8.8 mod_perl2.0です。
初めてmod_perlを試してみたんですが、CGIの動作がうまくいきません。
レスポンスヘッダを出力して欲しくないのに出力されてしまい、
しかもContent-typeがtext/plainになっています。
.htaccessで下記のように設定しています。
SetHandler perl-script
PerlResponseHandler ModPerl::RegistryPrefork
PerlSendHeader Off
Options +ExecCGI
通常のCGIとして正しく動いていて、mod_perlにしてもヘッダが
オカシイ以外は正しく動いている風です。
何かアドバイスをお願いします!
0956nobodyさん
2008/07/31(木) 16:52:57ID:???エラーログ見ると、
Permission denied
とあります。普通のCGIだとファイルが開けるのにmod_perl2だと開けないというのは
何か特別な作法のようなものがあるのでしょうか。
超困っているのでお助けを・・・
0957nobodyさん
2008/07/31(木) 23:29:50ID:???mod_perl のプロセスオーナと CGI (の Perl スクリプト実行の際に呼ばれる perl) のプロセスオーナが異なっているからでしょう。たぶんね。
0958955
2008/08/01(金) 00:03:22ID:???ステータスコードを自分で吐きたいときもあるんで、と思ったんですが、
別にONで構わないんですね。ただ、OFFにしてヘッダを頭から出力しても
うまくいかないのはよく分からず。
>>956
カレントディレクトリの食い違いじゃないですよね。定番なのに僕は嵌りました。
ユーザー違いはsuExec。whoamiで確認。昨日かじった程度の知識です。
0959nobodyさん
2008/08/05(火) 02:44:01ID:dDXLNQi4例えば1万件とか、どうでしょう?
0962959
2008/08/05(火) 09:13:45ID:dDXLNQi4どっちみちBasic認証だと.htpasswd使わないとダメでしょ?
0963nobodyさん
2008/08/05(火) 10:31:58ID:???766550件ってのが一番多いが問題なく動いてる。
せめてDBMかSQLiteかmySQLあたりにしたほうがいいかなとは思う
0965nobodyさん
2008/08/05(火) 13:06:09ID:???0966nobodyさん
2008/08/05(火) 14:17:26ID:???0967nobodyさん
2008/08/05(火) 14:52:27ID:???0968959
2008/08/05(火) 16:22:30ID:???766550件もあると、MySql使ってても、どうなんでしょう。うまくいくのかしら。
0969nobodyさん
2008/08/05(火) 16:56:41ID:???0970nobodyさん
2008/08/05(火) 17:02:04ID:???つーか運用してる( Web じゃないけどね。)。データ形式が違えど 76万件
なんて少ない方だと思うが…。
実行速度なんかは index 作製の有無に顕著に依存するがな。
そっちのスレ行ってみれば?
0971nobodyさん
2008/08/05(火) 19:53:36ID:???スクリプトはmod_perl上で動作しています。
0972nobodyさん
2008/08/05(火) 20:20:50ID:???こういうこと?
0974nobodyさん
2008/08/05(火) 20:39:02ID:???0975nobodyさん
2008/08/05(火) 20:53:00ID:???0976jark'use
2008/08/05(火) 21:29:26ID:???http://z-z.jp/のbbs.cgiスクリプトをnull(ry
[禁止用語]で抜こうと思います。
そこでパラメータにいろいろあてはめてますがうまく抜けません。
実際に抜いた人はnullを使ってたみたいです。
あまり詳しくは公開できない情報ですのでヒントを教えてください
0977nobodyさん
2008/08/05(火) 22:42:26ID:???板違いです。
ネットワーク板へどうぞ。
http://pc11.2ch.net/hack/
0978nobodyさん
2008/08/06(水) 02:10:44ID:tTNUWkPT@files = sort {scalar split('/', $a) <=> scalar split('/', $b)} @files;
って書いたら
Use of implicit split to @_ is deprecated
て言われました。どう書くのが今時ですか?
0979nobodyさん
2008/08/06(水) 06:35:34ID:???splitをscalarで使うと文句を言われるから、tr/\///などで数える方法に切り替える。
あと、シュウォーツ変換を使うと効率が上がる。
0980nobodyさん
2008/08/06(水) 12:03:05ID:???@_ のなんたるかを理解してるなら
sort { ( @_ = split m{/}, $a ) <=> ( @_ = split m{/}, $b ) } @files ;
でもいいし、普通に捨て配列作ってもいいしTMTOWTDI。
sort { ( my @A = split m{/}, $a ) <=> ( my @B = split m{/}, $b ) } @files ;
sort { @{[ split m{/}, $a ]} <=> @{[ split m{/}, $b ]} } @files ;
sort { sub { split m{/}, $_[0] }->($a) <=> sub { split m{/}, $_[0] }->($b) } @files ;
0981nobodyさん
2008/08/06(水) 12:28:12ID:???0983nobodyさん
2008/08/06(水) 13:43:13ID:???見やすく書いたほうがいいんじゃないかな
0984nobodyさん
2008/08/06(水) 13:55:55ID:+ukCpM4+DISK I/O のコストを甘く見ないほうがいい
0985nobodyさん
2008/08/06(水) 14:03:20ID:???そういうのはTMTOWTDIとはいわない。
0986nobodyさん
2008/08/06(水) 15:45:53ID:???犠牲にするのが多少じゃないんだったら考慮するのはあたりまえじゃ
0987nobodyさん
2008/08/06(水) 17:10:27ID:???でワーニングが出るって事をすっとばしてる奴がいるなあ。
perl -w -le '$a = @_ = split m{/}, q{/hoge/foo} ;'
元の質問に「コストも計算して」ってのがあったら、
シュワルツかシャチ泳ぎの二択になるんだけど
my %tb ;
sort { ( $tb{$a} ||= split m{/}, $a ) <=> ( $tb{$b} ||= split m{/}, $b ) } @files ;
0988nobodyさん
2008/08/06(水) 17:33:19ID:???それにスカラーコンテキストのsplitでなぜ警告が出るか理解してる?
@_を書き換える副作用があるからなんだけど。
シュワルツ使うのもシャチ泳ぎ使うのもいいけど、splitで数えるのは
おすすめできない。
0989nobodyさん
2008/08/06(水) 17:53:17ID:???>それにスカラーコンテキストのsplitでなぜ警告が出るか理解してる?
だからリストコンテキストにして明示的に@_に代入してんじゃんw
>>985の「$a=@aは、元質問では直接使えない」って指摘しただけだよ。
tr///もs///gも書き換えを行なってるんだから、ここで変な人為ミスが入る可能性
が高いよ。俺は使うし好きにしたらいい。
元質問からsplitで説明しただけだから。
0990nobodyさん
2008/08/06(水) 18:06:15ID:???元の変数で書き換えが起こるってのじゃあなあ
1000万文字の内のTのカウント
とかだと実行速度の問題もあってsplitは使わんが、コメント必須
にしてるなあ、実際先人の件の人為ミスで酷いことになった事あるし
0991nobodyさん
2008/08/06(水) 18:12:39ID:???だって初心者だもん
webprogの目的は、狭義には見て貰う人のユーザービリティーを高めるとか
サイトの付加価値を高めるのが目的なんであって、perlで動いていようが、phpだろうが
利用者には関係のないこと。
ましてや、どう書くかなんて見えないわけで、そりゃ自分の手技向上のためにいろいろ
議論する価値はわかるけど、エンドポイント(サイトの付加価値を高めるなど)を
忘れて、単に技巧にだけ走ってしまうのは好きではないな。
やりたいことが、自分の技量の範囲の中でできれば、それで目的は達成できるじゃん。
0992nobodyさん
2008/08/06(水) 18:17:08ID:???コメントしないとわかってもらえないレベルの人がいるんじゃ大変だなぁ。javaとか
使った方がいいんじゃない?
0993nobodyさん
2008/08/06(水) 18:24:39ID:???知ってるってw
それを知らない人がtr/T/t/しちゃったんだよ
貴方の様に知ってる人間ばかりだったら、コメントしないよ
予期しないバグをなるべく排除したいだけなんだ、共同開発してるから
ワーニングだけで済むならそれにこしたことは無いし
0994nobodyさん
2008/08/06(水) 20:01:34ID:???0995nobodyさん
2008/08/06(水) 20:06:03ID:???気が付いてないかはちがうんじゃないかな
レス数が950を超えています。1000を超えると書き込みができなくなります。