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/
0117nobodyさん
2009/03/01(日) 03:00:05ID:???http://perldoc.jp/docs/perl/5.8.8/perlmod.pod
begin end check init block perl 辺りで。
PODをgrepした方が速いけどね。
0118nobodyさん
2009/03/01(日) 03:21:26ID:???その前に、初めてのPerlと続・初めてのPerlを読んだ方が良いかな。
0119nobodyさん
2009/03/01(日) 16:15:08ID:???CPANでstrict, warnings使ってないじゃないか、
という揚げ足取りをされないために、念のため補足
0120nobodyさん
2009/03/01(日) 16:27:40ID:???システム開発を本職でやってる人たちって、やっぱオブジェクトつくるときMooseつかってる人多いの?
俺は仕事の補助的にperl使ってるだけで、今はスカラをblessして使ってるけどMooseに切り替えて見ようかなとか検討中。
0121nobodyさん
2009/03/01(日) 16:50:17ID:???けっこうしっかりとMooseについて纏められているよ
0122nobodyさん
2009/03/01(日) 17:20:11ID:???0123nobodyさん
2009/03/01(日) 17:20:33ID:???情報サンクス。
近くにその本置いてそうな本屋がないくらいど田舎なんで、
モダンPerl入門を森林組合に注文してみた。
0124nobodyさん
2009/03/01(日) 17:50:25ID:???Moose自体は2006年頃に初登場だから
比較的新しくてたぶん他にはないんじゃないかな
ブログとかにも情報なくはないよ
0125nobodyさん
2009/03/02(月) 00:11:21ID:???CGI.pmでクエリキーは得られるが値がundefになる。誰か助けて。
use strict;
use warnings;
use CGI;
my $query = new CGI->new();
my @params = $query->param();
print ''.$ARGV[0]."\n";
for my $key (@params)
{
print $key. "=";
print $query->{$key} || '';
}
$ perl cgitest.pl hoge=moge
hoge=moge
hoge=
環境はActivePerl 5.10.0/CGI.pm 3.41です。
0126nobodyさん
2009/03/02(月) 00:15:02ID:???こんな書き方初めて見たお(´・ω・‘)
0127nobodyさん
2009/03/02(月) 00:31:20ID:???perldoc CGI;
すれば一瞬で解るようなことなんだが。
まあ、取り敢えず$query->param($key)して落ち着け。
ハッシュで得たいならmy %query = $query->Vars();しとけ。
0128nobodyさん
2009/03/02(月) 00:31:51ID:???0129nobodyさん
2009/03/02(月) 00:35:54ID:???Moouse/Mouseもハッシュベースじゃないオブジェクトは
(無理じゃないけど)アレだよ。
どうしても必要があるとき以外は、俺はハッシュベースにしてる。
で、Moose/Mouseだけど、OOにするのと同様に、
或る程度以上の規模のプロジェクトならありがたみが増すけど、
そうでなくて、かつ、現状で満足できているなら、
無理に使わなくても十分やってけると思う。
まあ、one liner用のooseとかもあるくらいだから、
ちっこいプロジェクトでも使いではあるけどね。
0130nobodyさん
2009/03/02(月) 00:38:03ID:???こう解釈されるのか。
案外普通だ。
0131nobodyさん
2009/03/02(月) 00:57:22ID:???がーん、俺の使い方が間違ってたのか。
後付けになるけど今までActivePerl 5.6/CGI.pm 3.04を使っていて、>>125の書きかたでも通ってたんだ。
今までに作ったスクリプトは全部書き直しだなぁ。
どうもありがとうです。
0132nobodyさん
2009/03/02(月) 03:09:00ID:???ハッシュレフとアクセサが分かって無かったんだろうな。
> my $query = new CGI->new();
CGIがDamianの言ってることガン無視で組んでたからたまたま動いてると。
my $src_regex = qr/((\n\s+)var1\s=[^;]+;.*)\n/;
my $dest = "\$1\$2varp = 5;\n";
$input =~ s/$src_regex/$dest/sg;
$1,$2を変数の中に入れると置換されないのは 仕様?
0134nobodyさん
2009/03/02(月) 22:12:50ID:???0135nobodyさん
2009/03/02(月) 22:46:57ID:???今ひとつ掴めないが。
my $dest = q{"$1$2varp = 5;\n"};
$input =~ s/$src_regex/$dest/sgee;
Evalするとエラ〜になりまつ
Scalar found where operator expected at (eval 1) line 1, near "$1$2"
(Missing operator before $2?)
Bareword found where operator expected at (eval 1) line 1, near "$2varp"
(Missing operator before varp?)
Use of uninitialized value in substitution iterator at ./s.pl line 15.
早とちりしてた。 動きました。 なんで?
0138nobodyさん
2009/03/02(月) 23:05:28ID:jCf+CacPぜろちゃんねるのスクリプトを使用した掲示板を設置し、
test070124 ttp://0ch.mine.nu/public/scripts/
そこにアップローダを備えて誰でも過去ログをアップすることが出来る板を
設置しようと考えました。ただアップするだけではなくインデックスも更新できる
ような仕様を目指しました。
2: それでこんな風にやってみたが・・・
それで無事に掲示板とphpのロダも設置し、問題なく動作。
インデックスを更新するには管理者がログインして更新しなければならず、
アップした人が外部からインデックスを更新できるように
remake.cgi ttp://a1or4qsl6.hp.infoseek.co.jp/okiba/index.html
というものを使いました。
3: こんなエラーが出て上手く行かなかった。
しかし、ローカルではすんなりとロダで上げる、インデックスの更新も
問題なかったのですが、鯖でやるとレス番がズレるという問題が発生しました。
パーミッションの設定もいろいろイジったのですがどうしてもレス番
がズレ、繰り返すうちに板全体がおかしくなるのです(あるはずのないスレが発生など)。
なにが問題なのかよいアドバイスをよろしくお願いします。
0139nobodyさん
2009/03/02(月) 23:48:16ID:???/sgee; のeは一個でeval()一個と同等。
$destの中身をevalを使って評価してる。
my $dest = q{"$1$2varp = 5;\n"};
$input =~ s/$src_regex/eval $dest/sge;
0140nobodyさん
2009/03/03(火) 00:09:40ID:???$foo = q(huh?);
$foo =~ s/huh\?/die(q(huh))/e;
if ($@) {print q(died)}
0141nobodyさん
2009/03/03(火) 00:10:50ID:???0142nobodyさん
2009/03/03(火) 00:53:19ID:???期待してるのはこう?
my $foo = q(huh?);
$foo =~ s/huh\?/"die(q(huh))"/ee;
if ($@){ print q(died) }
eval()って書いたのは、eval EXPRを示したかっただけだから突っ込まないでくれ。
eval BLOCKとは異なることを言いたかった。
0143nobodyさん
2009/03/03(火) 01:26:39ID:???そうそう。
2個目のeからeval EXPRで外側を囲まれる感じとでも理解しておけばいいのかな?
どうもありがとう。
0144nobodyさん
2009/03/03(火) 13:34:16ID:YRhfBR/oプログラムが動かなくなってしまいました。思い当たる節としてはport でgnuplotを入れた際に
偉い時間がかかったのでそのときに何か変更されたのではと思っています。
perl -le 'print for @INC'
/sw/lib/perl5
/sw/lib/perl5/darwin
/opt/local/lib/perl5/5.8.8/darwin-2level
/opt/local/lib/perl5/5.8.8
/opt/local/lib/perl5/site_perl/5.8.8/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.8
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl/5.8.8/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.8
/opt/local/lib/perl5/vendor_perl
.
現在このようになっており、/Library/Perl/5.8.8などがサーチパスから外されています。
@INCを定義しているファイルってどこにあるんでしょうか。
もう、困るなあ。。
0145nobodyさん
2009/03/03(火) 13:39:15ID:???2chに書き込むと解決する法則が発動したな。
she-bangで#!/usr/bin/env perlとしていたため、/usr/bin/perlではなく/opt/local/bin/perlが使われていました。
ナンタルチーヤ!
勝手にパールいれんな。
0146nobodyさん
2009/03/03(火) 13:47:20ID:???こういう書き方がそもそも悪い
てゆか、ソースコードは1行独立で書こうよ。
文中に含まれると可読性悪い。
0147nobodyさん
2009/03/03(火) 19:13:25ID:???静的なHTMLファイルのフォームから、cgiを叩いて、次のページを表示させるという、
至って普通なことをしているのですが、IEだと正しくHTMLが解釈されてページが表示されるものの、
operaとFirefoxでは、plaintextとして、ソースが表示されてしまいます。
cgiにお約束の一文も入れてから、HTMLを吐いています。
print "Content-type: text/html\n\n";
ヘッダの最初はこんな感じです。文字コードも間違いなくeucで出力されていることも確認しました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-jp">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="cache-control" content="no-cache">
…
</head>
<body>…</body>
</html>
operaとFirefoxでソースを保存しようとすると、なぜか表示されているtextではなく、cgiを叩いて失敗した
画面のソースが保存されてしまうため、仕方なく、表示されるtextをそのままコピペで.htmlで保存して、
operaとFirefoxで開いてみると、HTMLは正しく解釈されて表示されています。
なにかヒントになりそうなことがあれば、ご教示願います。
0148nobodyさん
2009/03/03(火) 19:25:29ID:???0149147
2009/03/03(火) 19:29:13ID:???以前に書いたソースなので、自分でもよく覚えていないのですがw
print "Content-type: text/html\n\n";
の前に、printで出力している部分がありました…(デバッグ用だったのかなあ…)
0151nobodyさん
2009/03/03(火) 19:32:23ID:x3eHsIxdif ($tensuua < 10) {$ranka = 3;} elsif (tensuua < 20) {$ranka = 2;} else {$ranka = 1;}
if ($tensuub < 10) {$rankb = 3;} elsif (tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
------------------------------------------------------------------------------------------
if ($tensuua < 10) {$ranka = 3;} elsif (tensuua < 20) {$ranka = 2;} elsif (tensuua < 30) {$ranka = 1;}
elsif ($tensuub < 10) {$rankb = 3;} elsif (tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
0152147
2009/03/03(火) 19:33:00ID:???それで気がつきますよね。
何故か、print "Content-type: text/html\n\n";の前に、出力している部分は
opera、FFで確認できなかったので、telnetで確認すべきでした。
というか、これは500エラーにならないんだろうか…
0154nobodyさん
2009/03/04(水) 01:10:40ID:???0155訂正
2009/03/04(水) 06:49:37ID:+iuw4LCF点数でランク分けする処理を2つ行いたいのですが($tensuuaと$tensuubの数値によってそれぞれに対応する$rankaと$rankbの中身を書き換える)以下の2通りの書き方のうち
どちらが正しいのでしょう? 以前にif→elsifとせずif→ifを並べたらバグって変数内の数値が出鱈目になったことがありました、そのときは2つ以上の条件を同時に満たした上、
書き換えられる変数が同じ名前でした。今回、上のソースだとif→ifと同じように間違っているのか、変数が違うから問題ないのかがわかりません。
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua < 20) {$ranka = 2;} else {$ranka = 1;}
if ($tensuub < 10) {$rankb = 3;} elsif ($tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
------------------------------------------------------------------------------------------
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua < 20) {$ranka = 2;} elsif ($tensuua < 30) {$ranka = 1;}
elsif ($tensuub < 10) {$rankb = 3;} elsif ($tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
0156nobodyさん
2009/03/04(水) 07:13:20ID:???elsif ○○ではなくて××ならば
elsif さらに××でもなくて△△ならば
というだけの話なのだが
0157nobodyさん
2009/03/04(水) 07:46:56ID:+iuw4LCFif ( $a > 10 ){なんか処理}
if ( $a > 20 ){なんか処理}
if ( $a > 30 ){なんか処理}
コレだと$aに30以上が入力されるとバグります
10 if a>10 then なんか処理
20 if a>10 then なんか処理
30 if a>10 then なんか処理
ベーシックだと順に処理されて行番号30の処理が優先されたと思います。
0158nobodyさん
2009/03/04(水) 08:01:49ID:???30以上が入力されるとバグりますって、例えば$aが40だったら$a > 10は満たされるからそこが実行されるに決まってるだろうがよ。
0159nobodyさん
2009/03/04(水) 08:04:26ID:???if ( $a > 10 ){なんか処理}
if ( $a > 20 ){なんか処理}
if ( $a > 30 ){なんか処理}
お前さんの例で言うなら、例えば$aが40だったら「なんか処理」は三つとも実行される。
0160nobodyさん
2009/03/04(水) 10:14:27ID:???elsif(10以上20未満){処理}
else{処理}
0161nobodyさん
2009/03/04(水) 10:20:20ID:???大きい順に評価して if を並べりゃいいじゃない
0162nobodyさん
2009/03/04(水) 10:26:43ID:???0163nobodyさん
2009/03/04(水) 12:01:34ID:+iuw4LCF現在はすべてifでかかれているので正常に動作しません。
もし上でもよければ修正が容易なのですが下のようにしなければならないのならifが100個ぐらいあるのでフローチャートでも書かないとむりかなと思ってます。
ソースその1
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua < 20) {$ranka = 2;} else {$ranka = 1;}
if ($tensuub < 10) {$rankb = 3;} elsif ($tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
------------------------------------------------------------------------------------------
ソースその2
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua < 20) {$ranka = 2;} elsif ($tensuua < 30) {$ranka = 1;}
elsif ($tensuub < 10) {$rankb = 3;} elsif ($tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
0164nobodyさん
2009/03/04(水) 12:04:07ID:???0167nobodyさん
2009/03/04(水) 13:18:26ID:???何が要求仕様なのかもう一度整理しろ
んで、仮にこういうデータが来たらどう処理されるなってのを考えろ
0168nobodyさん
2009/03/04(水) 14:37:04ID:???ソースその1で動作環境はウェブサーバーで仮に$tensuua=20と$tensuub=20が同時に入力された場合 if→ifの場合のエラーと同じ不具合がおこりえるのかどうか
教えてください。
ソースその1
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua > 10 and $tensuua < 20) {$ranka = 2;} else {$ranka = 1;}
if ($tensuub < 10) {$rankb = 3;} elsif ($tensuub > 10 and $tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
------------------------------------------------------------------------------------------
ソースその2
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua > 10 and $tensuua < 20) {$ranka = 2;} elsif ($tensuua < 30) {$ranka = 1;}
elsif ($tensuub < 10) {$rankb = 3;} elsif ($tensuub > 10 and $tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
0169nobodyさん
2009/03/04(水) 15:04:49ID:???0170nobodyさん
2009/03/04(水) 15:47:05ID:???my ($tensuua, $tensuub) = (15, 15);
my ($ranka, $rankb);
if ($tensuua < 10) {$ranka = 3;} elsif ($tensuua < 20) {$ranka = 2;} else {$ranka = 1;}
if ($tensuub < 10) {$rankb = 3;} elsif ($tensuub < 20) {$rankb = 2;} else {$rankb = 1;}
print "a:$ranka b:$rankb\n";
これを実行すると、
a:2 b:2
こうなるわけだが、何か問題があるのか?
0171nobodyさん
2009/03/04(水) 16:28:04ID:???俺らはエスパーじゃねーんだよクソッタレ
0172nobodyさん
2009/03/04(水) 16:43:38ID:???my $rankA = -1;
my $rankB = -1;
my $pointA = 5;
my $pointB = 56;
my @pointlist = qw/30 20 10/;
my @ranklist = qw/1 2 3/;
for(my $i = 0; $i < $#pointlist + 1; $i++){
$rankA = $ranklist[$i] if $pointA < $pointlist[$i];
$rankB = $ranklist[$i] if $pointB < $pointlist[$i];
}
print "point = $pointA / rank = $rankA\n";
print "point = $pointB / rank = $rankB\n";
0173nobodyさん
2009/03/04(水) 16:45:26ID:???use strict;
my $rankA = -1;
my $rankB = -1;
my @pointlist = qw/30 20 10/;
my @ranklist = qw/1 2 3/;
# 上記までは変更しない
# 下の pointX を変更して動作を確かめてください
my $pointA = 5;
my $pointB = 56;
for(my $i = 0; $i < $#pointlist + 1; $i++){
$rankA = $ranklist[$i] if $pointA < $pointlist[$i];
$rankB = $ranklist[$i] if $pointB < $pointlist[$i];
}
print "point = $pointA / rank = $rankA\n";
print "point = $pointB / rank = $rankB\n";
0174nobodyさん
2009/03/04(水) 16:47:31ID:???$rankA = $ranklist[$i] if $pointA < $pointlist[$i];
$rankB = $ranklist[$i] if $pointB < $pointlist[$i];
}
の方がすっきりしない?
0175nobodyさん
2009/03/04(水) 17:20:03ID:bLGM+Am6ローカルホストで簡易掲示板を作りあるページで $_SERVER["REQUEST_URI"] とやると
127.0.0.1/hoge/bbs/
鯖にあげてローカルホストでやった場所と同じところで $_SERVER["REQUEST_URI"] とやると
127.0.0.1/hoge/bbs/php/ となるのはなぜ?
問題はないんだけど後学のために教えてください。
phpは つい1週間前に入れたばかりで httpd でのテストです。
0177nobodyさん
2009/03/04(水) 19:02:40ID:???0178nobodyさん
2009/03/04(水) 19:03:16ID:???$rankA = $ranklist[$i] if $pointA < $pointlist[$i];
$rankB = $ranklist[$i] if $pointB < $pointlist[$i];
}
0179nobodyさん
2009/03/04(水) 19:08:07ID:+iuw4LCF>>51 でも書いたように
if () {}
if () {}
if () {}
を
if () {}
elsif () {}
elsif () {}
にすると直る。
バグの症状は変数の数値が壊れる。この不具合が起こったプログラムは修正済みで不具合時のソースは見当たらず。
不具合時の環境はlolipopレンタルサーバーでブラウザーから呼び出したとき。
現在は直した部分以外の変数が壊れる現象があり、プログラムには100個程度のifが使われていることから、前回と
同じ理屈で不具合が起きているのではないかと推測。
if () {}
elsif () {}
else {}
を2個組み合わせてもifまたはelsifの2個以上が同時に真になったときに同じ現象が起きたのではないのかと推測
その推測を元に質問いたしましたが、文書力が無いので伝わらず。これはもうあきらめるしかないっぽい、外注に
出します、色々とありがとうございました。
この質問とレスの番号の全て→ >>45-66 >>151 >>153 >>155-174 >>176-178
0180nobodyさん
2009/03/04(水) 19:23:02ID:???お前プログラム勉強する気あるのか?
ifとelsifの違いは>>156に書いてあるだろ
if(){}
elsif(){}
else{}
実行されるのはどれか1つだ
if(){}
if(){}
if(){}
実行されるのは0-3個のどれか
0181nobodyさん
2009/03/04(水) 19:25:37ID:???こんだけ世界中で使われてるものの不具合がお前ごときに見つけられるわけがねーだろ
0182nobodyさん
2009/03/04(水) 19:32:56ID:???氏ねよ
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」 しか解説してない本を探せると思うか?
日本語を勉強しようとして 「あ行」 しか解説してない本を探せると思うか?
■ このスレッドは過去ログ倉庫に格納されています