[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 22:14 / Filesize : 220 KB / Number-of Response : 914
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 30箱目



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

186 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 21:55:26 ]
確かに一行ですが…^^;レスありがとうございます。
'AAAfooXXbarYYYYYbazZZZ' のように目的外の物が混ざっている場合
のチェックを別にしなければなりませんが。

やはり ()+ でのマッチを正規表現の修正で全部リストする無理でしょうか

187 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 22:27:05 ]
m/AAA((?:foo|bar|baz)+)ZZZ/
とかすれば全部とれることはとれる。
リストにはならないけど。


188 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 22:29:35 ]
>>186
> 'AAAfooXXbarYYYYYbazZZZ' のように目的外の物が混ざっている場合
その場合 @a は () とするべきか
AAA foo XXbarYYYYYbazZZZ と分けるべきか
AAAfooXX bar YYYYYbazZZZ と分けるべきか
AAAfooXXbarYYYYY baz ZZZ と分けるべきか
>>184からは読み取れないよ?

189 名前:184 mailto:sage [2007/04/05(木) 23:22:15 ]
レスありがとうございます

>>187
()+ での一気取得が駄目だった場合、私もそれを候補の一つに考えていました
リストにするには(foo|bar|baz)のマッチングがもう一回必要になってしまいますが


>>188
説明不足でした。申し訳ありませんでした
(ある程度大きいテキストから)
'AAA' と 'ZZZ' の間が (foo|bar|baz)+ のみで構成されている箇所を探し
その部分をリストとして取得したいと思っております

ですので、提示くださった選択肢の中では
>その場合 @a は () とするべきか
を考えています

(foo|bar|baz) の部分は実際はかなり重そうな正規表現の羅列と選択(|)で構成されていて
()+ による繰り返しも回数も非常に多く
(foo|bar|baz) のマッチングによる2度手間(切り出し・リストへ分割)は避けようと思い
今現在は下記の感じの処理を考えています
if (/AAA/) {
while ($' =~ /^(foo|bar|baz|ZZZ)/) {
if ($1 eq 'ZZZ') { OK; last; }
push(@a, $a);
}
}
}

そこで >>184 の質問するに至りました
マッチングも一回で一文で済ませられたら…と
長文失礼

190 名前:184 mailto:sage [2007/04/05(木) 23:38:24 ]
>>189
while ($' =~ //)

while ($' =~ //o)
を考えています


今docを読み込んでいるんですが ()+ でのグループの繰り返しマッチングの
全リスト取得は、正規表現工夫しても仕様的に無理なのかな…

191 名前:184 mailto:sage [2007/04/05(木) 23:40:39 ]
push(@a, $a) の行も間違えていました…
慌てて書き上げたもので
連投すみません

192 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:44:49 ]
AAAとZZZの間だけでいいのか?
AAAの前や、ZZZの後ろは無視していいのか?

193 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:47:12 ]
あと、入力データと出力データの例を具体的に示してくれ。
入力文字列と、それに対する@aの中身はどうなるのか。

194 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:51:08 ]
>>190
1対の括弧につき1つの値が保存される仕様なんだから、
1回のマッチにおいて1対の括弧で複数個の値を得るのは
そりゃ無理だわな。
それに複雑な正規表現でバックトラックの嵐にするより、
幾つかのシンプルな処理に分けた方が速い。

if (/AAA/g) {
  push @a, $1 while /\G(foo|bar|baz)/g;
}



195 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 23:52:06 ]
マジレスすると、速度とか考慮するなら切り出して二段階とかにした方が速い。
まぁ、元のデータの性質が分からんと何とも言えんが。

196 名前:こういうこと? mailto:sage [2007/04/06(金) 00:00:11 ]
if(($x) = /^AAA(.+)ZZZ$/){
  $x =~ s/(foo|bar|baz)/push @a, $1/ge;
}

197 名前:196 mailto:sage [2007/04/06(金) 00:06:16 ]
ああ、AAAが行頭とは限らないのか。

198 名前:184 mailto:sage [2007/04/06(金) 00:15:33 ]
>>192
はい。
/AAA(foo|bar|baz)+ZZZ/
これに厳密にマッチするところの(foo|bar|baz)のみを取得したいので

111AAAfooZZZ222 : 111 222 等は要りません
111AAAfooXXXbarZZZ222 : この場合 foo bar も要りません
111AAAfoofoofoobazbarZZZ222 : @a = ('foo', 'foo', 'foo', 'baz', 'bar') を取得したい

>>193
申し訳ありません。実際の入力データはお見せすることが出来ないので、
等価な具体例の作成も時間がかかってしまうかも知れません
上記例でご容赦ください

>>194
>そりゃ無理だわな。
ありがとうございます。
これが出来るのかどうかが一番知りたかったので、ふんぎりがつきました。



実際の具体例のデータを示せないので、(主に速度に関する)お答えは難しいですよね。
その中でも例やヒントを示してくださった方々ありがとうございました。
内部的な処理は詳しくないのですが、試行錯誤しながら参考にさせていただきたいと思います。

皆さんレスありがとうございました。(_ _)

199 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 04:08:13 ]
>>198
どういたしまして

200 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 08:54:56 ]
仕事丸投げするのはいいが、藻前さんが辞めた後にメンテする人のことも
わかってやれよな。

201 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 09:31:06 ]
括弧に量指定子使うのきめえ

202 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:26:07 ]
foo,bar,bazが3文字って決まってるならこれでどうよ。

$_ = '111AAAfoofoofoobazbarZZZ222';
/AAA(?:(foo|bar|baz)(?{push(@a,substr($&,-3))}))+ZZZ/;

print join(",",@a),"\n";

203 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:15:13 ]
つーか、そもそもどうしてそんなデータ構造なのかが気になる件。

204 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:30:16 ]
宿題?



205 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:27:01 ]
########################################
# データ内に改行が無ければ最初の二行は
# $_ = <>; で置き換え可能
########################################
chomp(@tmp = <>);
$_ = join '', @tmp;
$re = qr/foo|bar|baz/i;
s!(AAA(?:$re)+ZZZ)!push @a,$1=~/($re)/g !ge;
print join("-", @a);

これはひどい。

206 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:37:01 ]
qrのオプションは i じゃなくて o だった。

207 名前:デフォルトの名無しさん [2007/04/08(日) 15:55:23 ]
perlでlogの基数が2の場合を求めるには何をつかうのが
ベスト??
車輪の再発明はしない方向で・・・

208 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:56:59 ]
>>207
底の変換公式


209 名前:デフォルトの名無しさん [2007/04/08(日) 16:29:00 ]
>>208
thx

210 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:57:13 ]
仕事で初めてPerl使うんだが難しいな('A`)

211 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:12:16 ]
Cやってりゃ、Cのマクロ言語だと思って書いてれば当座はしのげる。
嵌りどころはあるが、「難しい」ではなく「勝手にいじるなよ!」ってな感じ。
Cの派生言語からでも同様。
「難しい」ってのは今までまっとうな言語の経験がないからじゃないかと思う。

212 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:59:21 ]
つーか、Cみたいな型がキッチリしたのから移行すると、
なんとなく気持ち悪いw

213 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:12:22 ]
>>212
Cの原始的な型じゃ、実際にコードを書くときたいして助けになってくれてないだろう。
目糞鼻糞だと思うんだけど。


214 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:21:03 ]
俺は、あくまでもテキスト処理用と考えたらすんなり入れた。
Cだと文字列めんどくせえし、C++と比べても正規表現処理のためのコード量がぜんぜん違うからな。




215 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:22:52 ]
>>213
そうでもない。例えばプロトタイプ宣言をちゃんと使っていれば
誤った引数を渡したりしたときなど、コンパイルエラーとして
コンパイルの時点で捕捉出来るし、プロトタイプ宣言自体が
関数の使い方に関する一番簡単なドキュメントになる。

216 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:27:16 ]
>>214
テキストをちょろっと弄くるには便利だよね。
クラスやリスト、リファレンス等の基本的な仕組みが
adhoc過ぎて汚いし(←個人的見解)
プログラムが大きくなればなるほど型付静的言語の有り難味が増す。

Perlで小さいプログラム以上のものを書く気にはとてもなれない。
同じ動的言語でも、Pythonあたりならまだ許容量大きいかな。

217 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:28:33 ]
そゆことだな。主にバイナリ扱うとなると、Cみたいなのが書きやすい。
文字列はperlみたいなのが楽だが。

218 名前:213 mailto:sage [2007/04/09(月) 00:40:57 ]
>>215
ああ、そういえばそうだ。目糞鼻糞は撤回する。

219 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 00:41:27 ]
>>217
バイナリとかバイト/文字単位の処理だとpack(), unpack()の嵐だわな。
それ考えると、文字列処理とか言っても正規表現使いやすいだけって希ガス。
エンコーディング周りもそんなに便利とは言えないし。

220 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 06:15:36 ]
っ 適材適所

221 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 07:43:02 ]
ある種の物事を異常に早く片付けられる、それがPerl。

222 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 19:15:26 ]
元々perlは文字列処理用なんしょ。

しかし、たとうばHTMLのタグを外す処理を書く ってなった時、
perlなら簡単だけど、Cで書くとなると工程からして憂鬱だ…。
regexp.dll使うけど、メモリリーク等に気を遣わないとで面倒だ…。

223 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:53:41 ]
やっぱ言語組み込みのが楽だよね・・・正規表現は

224 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:53:11 ]
>>222
まぁCで文字列処理はちょっとな。
どうしても(C++でなく)Cを使う必要があるのなら、せめて
GCライブラリを使いたいところ。
C++なら、文字列処理は別に苦にはならないはず。

それとCで字句/構文解析ならlex/yaccを使う場合も
多いんじゃないかな。



225 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 17:49:24 ]
この記事どうしてくれよう
ttp://gigazine.net/index.php?/news/comments/20070410_libwww/

226 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 18:03:28 ]
>>225
マジかと思ってUserAgentをlibwwwにしてググったらほんとに検索できなかった。
一時的な効果しか無いだろうに、アホな対応するなぁ…。

これからは適当なAgentを騙れってことでOK?

227 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 18:18:39 ]
IEのにあわせておくもんだろ

228 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:15:26 ]
>>226
libwww-perlを拒絶しても、本当に悪い奴は遮断できず、
入門過程の新参者を困惑させ余計な時間をとらせるだけ。

まさに1000害あって1利なし。

229 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:59:13 ]
所詮Google。

230 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:32:59 ]
つまり、おまえらpython使えの意


231 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:39:48 ]
その発想はなかったわ・・・

232 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:59:00 ]
フォームへのスクリプト拒否してるからでしょ

233 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:55:09 ]
>>232
んなもんどうでもなるやん。何の意味があるのかさっぱりわからん。

234 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:45:44 ]
2,3日で元のスパムの量に戻るに1ペリカ



235 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:26:47 ]
今更ながらどうもコマンドラインがよく飲み込めてないかもしれないので、
少しお尋ねします。
例えば
perl -pi.bak -e "tr/A-Z/a-z/"*.html
とか便利ですよね?
これを.plとして使いたいのですが無理なのでしょうか?
コマンドラインから打ち込むしか手がないのでしょうか?

236 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:40:03 ]
>>235
perlrun(1)の-iオプションの説明のとこに例があるだろ。よく嫁。

From the shell, saying

$ perl -p -i.orig -e "s/foo/bar/; ... "

is the same as using the program:

#!/usr/bin/perl -pi.orig
s/foo/bar/;

which is equivalent to

#!/usr/bin/perl
$extension = '.orig';
LINE: while (<>) {
if ($ARGV ne $oldargv) {
(改行大杉でおこられるので以下略)

237 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:40:50 ]
pc11.2ch.net/test/read.cgi/php/1171102883/593
pc11.2ch.net/test/read.cgi/tech/1173880452/235

238 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:49:06 ]
>>236
アリガトウございます。
なお、質問するスレが似つかわしくないと重い他スレにも同じ内容を質問させていただきましたが
ご迷惑かけたようで申し訳ないです。

239 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 11:06:13 ]
>>235
windowsだとどうも面倒なようなので他の手にします。お騒がせしました。

240 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 11:33:56 ]
手軽に使えるようになればいいだけなら、適切なオプション
与えたperlをsystemかexecで起動するようなスクリプト書く
手もあるよ。

病的に効率を気にする人にはお勧めしませんけど。


241 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:53:06 ]
>>239
Windowsなら.batに書けばいいんじゃね?
なんで.plにこだわるのかわからん

242 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:50:12 ]
YAPC::Asia 2007 Tokyoのpodcastでてるけど、これは聞いとけってものある?

243 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:15:28 ]
んだ

244 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:10:07 ]
> YAPC::Asia 2007 Tokyoのpodcastでてるけど、これは聞いとけってものある?

馴れ合いなので、聞く必要なし



245 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:01:25 ]
>>242
見事になんにもなし。


246 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 05:01:57 ]
>>240
ありがとうございます。
>>241
いえ。こだわってないから他の手にするつもりです。
UNIX環境でないとなかなか不便なものなんですね。

247 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 22:58:40 ]
>>246
>UNIX環境でないとなかなか不便なものなんですね。

この点は同意なんだけどね。
しかし、キミが不便だと言っている点についてオレは不便を感じたことはないな。

248 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:31:00 ]
そんなに頻繁に使うようならスクリプトをちゃんと書けよ
てかperlの質問じゃなくて、コマンドラインについての質問だよな・・・

249 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 13:30:37 ]
>>247
>しかし、キミが不便だと言っている点についてオレは不便を感じたことはないな。
主観的且つ感情的な意味でしょうか?そうではないとしたら何か理由がおありですよね?
不便と思わない理由はなんでしょうか?
>>248
スレ違いになるかもですね。
そろそろ退散したいと思います。

250 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 13:32:25 ]
>そんなに頻繁に使うようならスクリプト


251 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 17:11:52 ]
#!/usr/bin/perl
# >>235 の望みを叶える夢のスクリプト:
exec 'perl', '-pi.bak', '-e "tr/A-Z/a-z/"', shift;
__END__

252 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:29:21 ]
>>251
頭大丈夫?

253 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:41:39 ]
大丈夫な人も大丈夫じゃない人も大丈夫って答えるから
間抜けな質問というしかない。

254 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:55:57 ]
>>184
@a = grep {/(foo|bar|baz)/} split /(foo|bar|baz)/ , $_;




255 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:30:26 ]
こんばんは。
会社のHP作成を引き継いだのですが、わからないことがあるのでどなたか教えていただけないでしょうか。
コンボボックスを外部のテキストから読み込んでいるのですが、途中までしか表示されないのです。
0<>--<><>
1<>A<><>
2<>B<><>
3<>C<><>
4<>D<><>
5<>E<><>
6<>F<><>
7<>G<><>
8<>H<><>
(中略)
14<>N<><>
上記が外部テキストの中身なのですが、コンボボックスには8までしか表示されないのです。
コンボボックスの方は
#編集モード以外は表示するだけ、編集モード時はコンボボックスで表示
if (!$edit) {$html .= "<td align=\"center\"><table width=\"100%\">";
for ($l = 0; $l < $periods; $l++) {
if ($showpname) { $html .= "<tr><td>$periodname[$l]</td>"; }
$html .= "<td align=\"center\">$STATUSSTR[$stats[$l]]</td></tr>";}
$html .= "</table></td>\n";}
となっています。
全てを表示させるようにするにはどこを変えたらいいのでしょうか。
(これだけの情報では不十分でしたらすみません。
 他にどんな情報が必要かも教えていただければ幸いです)
Perl関連の本など読んでみたのですがわからなくて…
宜しくお願いします。

256 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:36:54 ]
コンボボックスじゃなくて表で表示するコードに見えるが・・・。

257 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:48:58 ]
>>256さん
あ、もしかしてここは関係なかったですかね…
カレンダーの1日ごとにコンボボックスが入っているので、そのカレンダーの方のコードなんでしょうか…
わからないことだらけのまま質問してしまってごめんなさい。
もう一度コードを見直してみます。

258 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:53:55 ]
読み込まれたテキストデータがコンボボックスのどの変数になってるのかがわからない。
perlコードの、$periods、$showpname・・・とやらが何なのかわからないと
何もアドバイス出来ないよ。

259 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:03:49 ]
>>258さん
そうですか…
$periodsなどなどは専門用語なのかなぁ、と思っていたのでそこから間違いだったのですね。
前任者とは全く連絡が取れず、初心者の私には何がなにやらさっぱりで…
失礼致しました。
もっと勉強して出直します!

260 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:23:13 ]
periodつーたら何らかの「期間」じゃないのか?


261 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:39:39 ]
>>260さん
期間…カレンダー関係ですかねぇ。
日ごとにアルファベッドを選択して登録するんですけど、
何ヶ月か分をまとめて登録してそれをScriptで(?)違うページに呼び出すので、それですかねぇ…
それにしても8番までしか出てこないのもどこかで指定してるんですかねぇ。
あまりにファイルが多すぎて、探すのに時間がかかりそうです…

262 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 00:52:49 ]
>>255
本当にそのコードが該当コードなのかどうか怪しいね
ありうるとすれば@STATUSSTRの中が"<select>…"といったhtmlになってるとか

とりあえずPerlの配列変数は先頭の記号が $ だったり @ だったりするので
それだけ注意して変数をさかのぼって行くとか

お節介だけど$showpnameのif文、通らない場合に開始<tr>タグ欠けるよ

263 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:03:42 ]
俺なら解読するの諦めて書き直したくなるな

264 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:56:12 ]
>>255
エスパーのおいらが予測するには、>>255 が挙げた箇所の次に
} else {
という行があり、その後の部分が問題の部分なんだろうな。



265 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 06:52:58 ]
perlのソースコードの中に直接HTMLが書かれているなら
「type="select"」あたりで検索すれば、該当個所の近辺の
コードに当たるんじゃないか?

266 名前:265 mailto:sage [2007/04/15(日) 06:55:31 ]
間違えた。「type="select"」じゃなくて「<select」だな。

267 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 23:51:49 ]
>>255さんには内緒で、実はその前任者さんをこのスレにお呼びしています^^。
実は前任者さん、その書き込みの様子をモニターを通して見ておりました。
では、心に引っかかっていた辛い過去。
あの時、伝えられなかった想いを今、、、

268 名前:デフォルトの名無しさん [2007/04/16(月) 00:50:06 ]
perlの時代は終わった・・・
これからの初心者は、今の時代に合った言語を使ってくれ・・・

・・以上

269 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 00:53:48 ]
ruby?python?

270 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 01:04:26 ]
情報保護の時代だからな。
Whitespaceだろ。

271 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 04:53:46 ]
仕事をPHPいじってから、Perlを汚い言語だなんて言ってた自分の愚かさに気づいた。
Perlは消えなくていい。PHP、頼むから消滅してくれ。

272 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 04:56:25 ]
s/(?<=仕事)を/で/

273 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 06:08:15 ]
255です。
皆さんどうもありがとうございます。参考になりました!
ここで皆さんにお聞きするにはあまりにも自分が無知すぎて申し訳ないです。
更新は休みの土日しかできないので、来週までに色々調べてまた挑戦します。

>>262さん
なるほど…
<tr>タグの件、ご指摘ありがとうございます!

>>263さん
書き直すなんて絶対無理ですので頑張って解読したいと思います…

>>264さん
} else { って部分あります!!
その部分に注意してみます。

>>265さん
検索ですね。htmlがperlの中にあるので試してみます!

>>267さん
実は前任者とは全く面識がないので、あの時も何もあったもんじゃない、って感じなのですが…

274 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 14:16:33 ]
>>225
すんげー今更だな
google出来た頃から規約に書いてあるし
www.google.co.jp/accounts/TOS



275 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 06:50:02 ]
まさかLWP使ったらすべて自動クエリだとか思ってる訳じゃないよな。

276 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 06:59:52 ]
>検索結果ページに対して

ってあるからなぁ

277 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:36:22 ]
質問です

$var = 010203 とあります

これを
$var = 01/02/03

このように2桁ごとにスラッシュを入れるにはどうしたらよいでしょうか?

0102 や 01、01020304 の場合などどの桁数にも対応したいです

278 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:43:51 ]
 perl -e '$var="010203"; $var=~s/([0-9]{2})/$1\//g;print $var;'

279 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 15:07:07 ]
ありがとうございます
できました

280 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 15:48:19 ]
正規表現の中にスラッシュがあるときはエスケープするより
s{([0-9]{2})}{$1/}g
とかの方が良い気がする

281 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:06:26 ]
0-9より\dのがいい気がする

282 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:11:38 ]
'010203' のとき '01/02/03/' になる気がする

283 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 16:44:03 ]
s{\d{2}(?=\d)}{$&/}g;
かな

284 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:15:38 ]
$& 使うくらいだったら普通に join したくなるなあ、俺は。
perl -le '$var = qq{010203} ; print join q{/}, ( $var =~ /(\d{2})/g )'



285 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:37:56 ]
まあ一般には \d は 0-9 の必要条件であって同値ではないけどな。

286 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:46:31 ]
こういうことか
$ perl -e 'use utf8; print q[0] =~ /\d/'
1






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<220KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef