Perlコーディング初心者質問スレ Part 59
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/02/16(月) 11:42:29ID:gvPTpodw【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >2 以降
前スレ http://pc11.2ch.net/test/read.cgi/php/1218030872/
0184nobodyさん
2009/03/04(水) 19:41:31ID:???0185nobodyさん
2009/03/04(水) 19:55:41ID:???0186nobodyさん
2009/03/04(水) 20:00:39ID:???まー「外注に依頼」という正解にたどり着いたのはいいことだ。
0187nobodyさん
2009/03/04(水) 20:13:55ID:???共用鯖で実験ならいつもやってますw
無限ループやらかして、何度自分でプロセス切った事やらw
0188nobodyさん
2009/03/04(水) 22:04:05ID:???そういう設定が普通だと思ってた
0189nobodyさん
2009/03/04(水) 23:45:41ID:4H3lqSU+含まれていたときはスルーし、最後に実行させたいのですが。
こんな感じのときです
対象 hogehoge
検索 geh
含まれていたら print "NO";
含まれていなかったら他の条件へ。
0190nobodyさん
2009/03/04(水) 23:53:18ID:???ここがよくわからない
if ( $str =~ /geh/ ){
print "NO";
}else{
#他の条件
}
0191nobodyさん
2009/03/04(水) 23:53:35ID:???my $search = 'geh';
if($str =~ /$search/){
print "NO\n";
}else{
....
}
0192nobodyさん
2009/03/04(水) 23:53:59ID:???0194nobodyさん
2009/03/05(木) 00:09:14ID:PCYMuwfz含まれていないときに終了させ、含まれている時にはスルーすることをしたいのですが。
$str = 'hogehoge';
if ( length($str) ne '8' ) {
print "no";
}
elsif {
geh が含まれていないとき
print "no";
}
elsif {
他の条件1
print "no";
}
elsif {
他の条件2
print "no";
}
else {
実行
print "oK";
}
こういうことです。
0195nobodyさん
2009/03/05(木) 00:16:13ID:???処理が逆なら真偽ひっくり返したらいいだけ
0196nobodyさん
2009/03/05(木) 00:26:06ID:PCYMuwfz>含まれていたら print "NO"って書いてたやん
間違えていました。正しくは含まれていないときに実行したいのです。
真偽をひっくり返すとは?
0197nobodyさん
2009/03/05(木) 00:28:58ID:???0198nobodyさん
2009/03/05(木) 00:41:15ID:PCYMuwfz$str = hogehoge;
if ( $str != ~/geh/) {
print "NO";
}
0200nobodyさん
2009/03/05(木) 00:49:56ID:???〜処理〜
}
!~ は 一致したときに偽となります。
なので、!~ で一致しなければ真となります。
0202nobodyさん
2009/03/05(木) 02:37:44ID:???あれってどうやっているんですか?2つcgiを用意するのか
もしくは1つでやっているんでしょうか?
0203nobodyさん
2009/03/05(木) 02:41:58ID:???0204nobodyさん
2009/03/05(木) 06:51:21ID:???原因を調べてみた結果「ー」がその原因だったことが判明しました。
ソースはこんな感じなんですがどうすればエラーが出ないようになるでしょうか?
if( $NG =~ m/$subject/) {
print '禁止ワードです';
}
文字コードはShift-JISでj-code.plなどは使用していません。よろしくお願いします。
0205nobodyさん
2009/03/05(木) 08:28:19ID:???0206nobodyさん
2009/03/05(木) 08:36:47ID:???そんなやり方があるんですね。ありがとうございます。
軽くググってましたが \Q***\E を使うといいらしいですが\Eで閉じる必要はないのでしょうか?
0207nobodyさん
2009/03/05(木) 08:39:30ID:???クウォートメタの効果を途中で止めたいなら\Eで閉じなきゃいけないけどこの場合はないから閉じなくてもいい
0209nobodyさん
2009/03/05(木) 08:58:56ID:???/\Q$subject[a-z]\d/みたいにクウォートメタしたいものの後に正規表現使う場合には
/\Q$subject\E[a-z]\d/こう書かいて閉じておかないと、パターンマッチではなく
$subjectの内容直後に"[a-z]\d"という文字があるときしかマッチしなくなるということ
0210179
2009/03/05(木) 16:49:09ID:9GnY8N9BIFの使い方に特化した本ありませんか?
0211nobodyさん
2009/03/05(木) 16:56:24ID:???0213nobodyさん
2009/03/05(木) 16:59:45ID:???どうぞ
0214nobodyさん
2009/03/05(木) 17:05:25ID:???0215nobodyさん
2009/03/05(木) 17:06:52ID:???http://www.amazon.co.jp/gp/product/images/B001QWUZ9W/ref=dp_image_0?ie=UTF8&n=465392&s=books
0216nobodyさん
2009/03/05(木) 17:08:19ID:???キミは
英語を勉強しようとして、「if」 しか解説してない本を探せると思うか?
日本語を勉強しようとして 「あ行」 しか解説してない本を探せると思うか?
0217nobodyさん
2009/03/05(木) 17:09:07ID:???こういったリンクの方がうれしい
0218nobodyさん
2009/03/05(木) 17:26:32ID:???0219nobodyさん
2009/03/05(木) 17:50:16ID:???0220nobodyさん
2009/03/05(木) 17:58:01ID:???それ見て勉強するか100万払うこったな
面倒くさいからもう来んな
0221nobodyさん
2009/03/05(木) 19:52:11ID:???創刊号は演算子優先順位一覧表がついて、590円!
0222nobodyさん
2009/03/05(木) 19:52:52ID:???ネタじゃないなら、もうソースも恥部もさらけ出せよ
0223nobodyさん
2009/03/05(木) 20:40:48ID:???0224nobodyさん
2009/03/05(木) 20:43:15ID:???0225nobodyさん
2009/03/05(木) 20:53:49ID:???0227nobodyさん
2009/03/06(金) 00:19:12ID:???if文を100個も並べるようなコードは、おそらくif文などほとんど使わずに書けると思うよ。
コード以前に、仕様定義を日本語で整理することに頭と時間使った方が結局近道。
どういう処理をさせたいか日本語で表せない(他人に伝えられない)のにコーディングできるはずがない。
例えば
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua > 10 and $tensuua < 20) {$ranka = 2;} else {$ranka = 1;}
のコードは、$tensuua == 10 のとき、意図しない結果となると思う。
条件式は、混乱するんだったら、表を書いてでも整理すべし。
0228nobodyさん
2009/03/06(金) 00:29:04ID:???0229nobodyさん
2009/03/06(金) 01:14:19ID:???0230nobodyさん
2009/03/06(金) 01:57:58ID:???NCNRでお願いします。
0231nobodyさん
2009/03/06(金) 05:12:13ID:???3万でいいよ
0232nobodyさん
2009/03/06(金) 13:15:46ID:???制作は規模にもよるけど3ヶ月以内を約束で。
0233nobodyさん
2009/03/06(金) 14:24:55ID:???なんかのフレームワークかな?とか。
……俺だけ?
0235nobodyさん
2009/03/06(金) 18:09:13ID:???0236nobodyさん
2009/03/06(金) 22:21:27ID:???創刊号 ifブロック特集
第2号 elseブロック特集
第3号 elsifブロック特集
第4号 unlessブロック特集
第5号 whileブロック特集
第6号 untileブロック特集
第7号 forブロック特集
第8号 if修飾詞特集
第9号 unless修飾詞特集
第10号 while修飾詞特集
第11号 until修飾詞特集
第12号 for修飾詞特集
第13号 if演算子(?:)特集
第14号 範囲演算子(..)特集
第15号 範囲演算子(...)特集
第16号 論理積演算子(&&)特集
第17号 論理和演算子(||)特集
第18号 論理積演算子(and)特集
第19号 論理和演算子(or)特集
第20号 排他的論理和演算子(xor)特集
第21号 grep関数特集
第22号 evalブロック特集
第23号 Switchモジュール特集
最終号 はじめてのPerlプログラミング
0237nobodyさん
2009/03/06(金) 23:18:44ID:???if の歴史
からいこうぜ
0238nobodyさん
2009/03/06(金) 23:27:43ID:???0239nobodyさん
2009/03/06(金) 23:36:05ID:???0240nobodyさん
2009/03/07(土) 00:03:23ID:???まともにやってたら中級の入り口に立ってるはずなのにw
0241nobodyさん
2009/03/07(土) 02:52:57ID:???0242nobodyさん
2009/03/07(土) 02:58:51ID:???むしろツッコミどころは第23号じゃね?
0243nobodyさん
2009/03/07(土) 14:31:06ID:???0245nobodyさん
2009/03/07(土) 15:05:38ID:???0246nobodyさん
2009/03/07(土) 18:31:27ID:???0248nobodyさん
2009/03/08(日) 01:43:51ID:???0249nobodyさん
2009/03/08(日) 11:38:53ID:???0251nobodyさん
2009/03/08(日) 21:55:46ID:???あの辺のクラスタは10年経ってもずっとやってそう
0252nobodyさん
2009/03/08(日) 22:16:42ID:???0255nobodyさん
2009/03/09(月) 01:19:00ID:???$hogeがaとb以外のときに実行するには
if ($hoge ne 'a' or $hoge ne 'b' ){
print "oik";
}
で合ってますか?
0256nobodyさん
2009/03/09(月) 01:26:29ID:???その場合だと、「a以外」または「b以外」のときに真となるので、常に成立することになる。
「aまたはb」という条件式を作り、それをさらに否定するといい。
0257nobodyさん
2009/03/09(月) 01:27:09ID:???0258nobodyさん
2009/03/09(月) 01:28:42ID:???orじゃなくて、andじゃないとマズくね?
0259nobodyさん
2009/03/09(月) 01:30:03ID:???0260nobodyさん
2009/03/09(月) 01:40:09ID:???$hoge = 'c';
if ($hoge ne 'a' and $hoge ne 'b' ){
print "ok";
}
なら ok で、このとき $hoge = 'b' ならなにもしないんですよね?
0261nobodyさん
2009/03/09(月) 01:46:15ID:???おっけー。
あと、既に知ってるかもしれないが
「ド・モルガンの法則」でぐぐってみると勉強になるかも
0264nobodyさん
2009/03/09(月) 04:12:13ID:???0265nobodyさん
2009/03/09(月) 04:36:41ID:???月刊ifの全て第18号には、こんな用例がのっているはずw
$hoge = 'c';
$hoge ne 'a' and $hoge ne 'b' and print "ok";
0266nobodyさん
2009/03/09(月) 19:03:15ID:???0267nobodyさん
2009/03/09(月) 23:14:05ID:???初めてflockを使ってみたのですが、実際にflockを間違えずに入れれてるかどうか
確認するにはどうすればいいでしょうか。
0268nobodyさん
2009/03/10(火) 00:01:48ID:???たとえば純粋にカウントアップするスクリプト書いて、
ab で 30 のクライアントで 10000 回もぶん回せば結果は出るかと思うよ
0269nobodyさん
2009/03/10(火) 11:58:59ID:???ワクワクを百倍にしてヤフオクの主役になろう♪
0270nobodyさん
2009/03/10(火) 11:59:31ID:???0271nobodyさん
2009/03/11(水) 22:07:23ID:???abってモジュールがあるのでしょうか?
ググッて見たけど、ソートの$a<=>$bとかばっかりひっかかってわかりませんでした。
検索語にapacheも追加すると幸せになるかもしれません。
0274nobodyさん
2009/03/12(木) 16:37:21ID:???範囲演算子の「..」と「...」をスカラーコンテキストとして評価して
状態遷移処理をするプログラムを活用している人はいるのだろうか?
0275nobodyさん
2009/03/12(木) 17:06:33ID:???0276nobodyさん
2009/03/12(木) 19:29:47ID:???なるほど
試しに使ってみたけど論理が混乱して変数でフラグ持たせるやりかたで未だにやっているけど
実際に嫌と言うほど使っている人がいるってことは、俺がバカだったというだけみたいだな出直してきます
0277nobodyさん
2009/03/14(土) 16:39:37ID:???0278nobodyさん
2009/03/14(土) 20:53:02ID:???ソースを参考に、こんなの書いたけど駄目でした。
package Hoge;
use strict;
use warnings;
sub import {
strict->import;
warnings->import;
}
package main;
use Hoge;
$hoge=1; # ここでエラーになって欲しい
0281nobodyさん
2009/03/16(月) 00:10:49ID:???フレームワークにTripletailを使いたいのですが、
どうやっても
DBI connect('test:localhost','user',...) failed: Can't create TCP/IP socket (10106) at C:/Perl/site/lib/Tripletail/DB.pm line 1102と
エラーが出てしまって…
コードはiniのDB設定以外Tripletailのチュートリアルにあるものそのままだし
DBのユーザー名やパス等も間違いないと思うのですが。
誰かTripletail使ってる人いませんか?
0283nobodyさん
2009/03/23(月) 00:31:29ID:???多くの場面で使われているということだけでは、何も評価したことにならんよ。
「あれがいいってみんなが言ってるよ。」
■ このスレッドは過去ログ倉庫に格納されています