From utashiro @ iij.ad.jp Tue Nov 4 01:59:41 2003 From: utashiro @ iij.ad.jp (Kazumasa Utashiro) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] MacOS X 10.3 perl bug Message-ID: <20031104.165940.112625187.utashiro@iij.ad.jp> 今まで 5.8 は使っていなかったのですが、Panther に付いて来たので使い始 めています (v5.8.1-RC3)。 $_ = "12345"; while (/(?g)\d/) { print "$&\n"; } というプログラムが無限ループするんですが (永遠に 1 が出る)、やっぱ RC3 てのが悪いんでしょうか? # おかげで手元版の mg が動かなかった… --utashiro From eban @ os.rim.or.jp Tue Nov 4 02:12:26 2003 From: eban @ os.rim.or.jp (WATANABE Hirofumi) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] MacOS X 10.3 perl bug In-Reply-To: Kazumasa Utashiro's message of "Tue, 04 Nov 2003 16:59:41 +0900 (JST)" <20031104.165940.112625187.utashiro@iij.ad.jp> References: <20031104.165940.112625187.utashiro@iij.ad.jp> Message-ID: <2322-Tue04Nov2003171226+0900-eban@os.rim.or.jp> わたなべです。 Kazumasa Utashiro writes: > 今まで 5.8 は使っていなかったのですが、Panther に付いて来たので使い始 > めています (v5.8.1-RC3)。 > > $_ = "12345"; > while (/(?g)\d/) { > print "$&\n"; > } > > というプログラムが無限ループするんですが (永遠に 1 が出る)、やっぱ RC3 > てのが悪いんでしょうか? Linux上の5.8.0, 5.8.1, 5.9.0で試しても無限ループでした。 5.8.0以降は全滅っぽいですね。 -- わたなべひろふみ From utashiro @ iij.ad.jp Tue Nov 4 02:34:06 2003 From: utashiro @ iij.ad.jp (Kazumasa Utashiro) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] MacOS X 10.3 perl bug In-Reply-To: <2322-Tue04Nov2003171226+0900-eban@os.rim.or.jp> References: <20031104.165940.112625187.utashiro@iij.ad.jp> <2322-Tue04Nov2003171226+0900-eban@os.rim.or.jp> Message-ID: <20031104.173406.85411752.utashiro@iij.ad.jp> From: WATANABE Hirofumi Subject: Re: [Tokyo.pm] MacOS X 10.3 perl bug Date: Tue, 4 Nov 2003 17:12:26 +0900 > > 今まで 5.8 は使っていなかったのですが、Panther に付いて来たので使い始 > > めています (v5.8.1-RC3)。 > > > > $_ = "12345"; > > while (/(?g)\d/) { > > print "$&\n"; > > } > > > > というプログラムが無限ループするんですが (永遠に 1 が出る)、やっぱ RC3 > > てのが悪いんでしょうか? > > Linux上の5.8.0, 5.8.1, 5.9.0で試しても無限ループでした。 > 5.8.0以降は全滅っぽいですね。 マニュアルにも "(?imsx-imsx)" と書いてあるので、動かないのが正しい動作なんですかね。 ってことは、バグじゃないのか。 # 移行する度にこういうトラップにハマるなあ。 --utashiro From dankogai @ dan.co.jp Tue Nov 4 03:37:57 2003 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] MacOS X 10.3 perl bug In-Reply-To: <20031104.173406.85411752.utashiro@iij.ad.jp> Message-ID: <9275105A-0EAA-11D8-B16C-000393AE4244@dan.co.jp> 弾です。 On Tuesday, Nov 4, 2003, at 17:34 Asia/Tokyo, Kazumasa Utashiro wrote: > From: WATANABE Hirofumi > Subject: Re: [Tokyo.pm] MacOS X 10.3 perl bug > Date: Tue, 4 Nov 2003 17:12:26 +0900 > >>> 今まで 5.8 は使っていなかったのですが、Panther に付いて来たので使い始 >>> めています (v5.8.1-RC3)。 >>> >>> $_ = "12345"; >>> while (/(?g)\d/) { >>> print "$&\n"; >>> } >>> >>> というプログラムが無限ループするんですが (永遠に 1 が出る)、やっぱ RC3 >>> てのが悪いんでしょうか? >> >> Linux上の5.8.0, 5.8.1, 5.9.0で試しても無限ループでした。 >> 5.8.0以降は全滅っぽいですね。 > > マニュアルにも > > "(?imsx-imsx)" > > と書いてあるので、動かないのが正しい動作なんですかね。 というのが私の解釈ですが、p5pで確認してみます。ちなみに perl -e '$_=12345; while (/\G\d/g) {print "$&\n";}' は期待どおりに動きます。 Dan the Perl5 Porter From dankogai @ dan.co.jp Tue Nov 4 03:53:20 2003 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] m/(?g)/ vs m/\G/g Message-ID: Porters, Utashiro-san (Who translated the Owl Book to Japanese) has reported to Tokyo.pm ML that perl -e '$_=12345; while (/(?g)\d/) {print "$&\n";}' Goes into an infinite loop on the perl that comes with Panther. Watanabe-san (the author of Jperl) further tracked down the symptom and found the (?g) stopped working since Perl 5.8. Utashiro-san suspects that (?imsx-imsx) does not contain "g" so the code above remained an (accidental,) undocumented feature till Perl 5.8 closed the loophole. FYI perl -e '$_=12345; while (/\G\d/g) {print "$&\n";}' Works just fine. I just want to know if we eliminated (?g) on purpose (IMHO it should simply croak. So far it appears to be a no-op). perldoc perlre > The "\G" assertion can be used to chain global matches > (using "m//g"), as described in "Regexp Quote-Like Opera- > tors" in perlop. It is also useful when writing > "lex"-like scanners, when you have several patterns that > you want to match against consequent substrings of your > string, see the previous reference. The actual location > where "\G" will match can also be influenced by using > "pos()" as an lvalue: see "pos" in perlfunc. Currently > "\G" is only fully supported when anchored to the start of > the pattern; while it is permitted to use it elsewhere, as > in "/(?<=\G..)./g", some such uses ("/.\G/g", for example) > currently cause problems, and it is recommended that you > avoid such usage for now. methinks that Utashiro-san's (?g) falls into "such usage" that should be avoided.... Dan the Irregularly Expressing Man From GCD00051 @ nifty.ne.jp Wed Nov 5 16:51:57 2003 From: GCD00051 @ nifty.ne.jp (KAWAI,Takanori) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?QXBhY2hlQ29uIFVTIDIwMDMbJEIkSzsyMkMkNSRsJGtKfSRPJCQbKEI=?= =?iso-2022-jp?B?GyRCJGkkQyQ3JGMkJCReJDskcyQrISkbKEI=?= Message-ID: <002f01c3a3ef$8f7274e0$abe380d3@hipposam> 川合孝典です。 #Tokyo.pm、Shibuya.pm、Kansai.pmへマルチポストで申し訳ありません <(__)> 唐突ですが、 ApacheCon US 2003(http://apachecon.com/2003/US/index.html)に 参加される人はいらっしゃいませんか? 日経Linuxさんで記事(1/2〜1ページ程度)を書いてくれる人を探していると いうことで、聞かれているのです。 もしいらっしゃったら、ご連絡ください。<(__)> よろしくお願いします。 =================================================== 川合 孝典 (Hippo2000) DBI日本語メーリングリスト管理人、Kansai.pm所属 kwitknr@cpan.org GCD00051@nifty.ne.jp http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/ perldocの日本語情報ならperldocjp:翻訳してみませんか? http://perldocjp.sourceforge.jp/ =================================================== From okabek @ beige.ocn.ne.jp Thu Nov 20 09:46:53 2003 From: okabek @ beige.ocn.ne.jp (Keiichi Okabe) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] utf-8 =?ISO-2022-JP?B?GyRCTVEkThsoQiAid29yZCIgY2hhciAbJEIkQxsoQg==?= =?ISO-2022-JP?B?GyRCJEYhKRsoQg==?= Message-ID: 岡部です. 5.8.2 もでて,ActivePerl も5.8.1が出てきたので,utf8を 活用するスクリプトを作り始めています.で, \w Match a "word" character (alphanumeric plus "_") に対応する,日本語文字クラス(って言えばよいのかな?) ってのはどう記述すればよいのでしょうか.perldoc をあさって いるのですが,見つからないので,どなたか(どこに出ている という情報でもよいので)教えてください. -- okabek@beige.ocn.ne.jp 岡部 恵一 成功出於衆者、先知也、先知者、必取於人、知敵之情者也 孫子 用間篇 第十三 From dankogai @ dan.co.jp Thu Nov 20 12:05:15 2003 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?UmU6IFtUb2t5by5wbV0gdXRmLTggGyRCTVEkThsoQiAid29y?= =?ISO-2022-JP?B?ZCIgY2hhciAbJEIkQyRGISkbKEI=?= In-Reply-To: References: Message-ID: <1789BE70-1B84-11D8-B6CD-000393AE4244@dan.co.jp> On Nov 21, 2003, at 12:46 AM, Keiichi Okabe wrote: > 岡部です. > > 5.8.2 もでて,ActivePerl も5.8.1が出てきたので,utf8を > 活用するスクリプトを作り始めています. Perlのソノ部分担当の弾です。 > で, > > \w Match a "word" character (alphanumeric plus "_") > > に対応する,日本語文字クラス(って言えばよいのかな?) > ってのはどう記述すればよいのでしょうか. ちょっと定義が曖昧でわかりません。要するに、漢字なら漢字、カタカナならカタカナ、ひらがなならひらがなだけ抜き出せればよいのでしょうか?あるい は、日本語としてOKな文字をすべて取り出すという意味でしょうか?とりあえず前者の場合を想定すると..... > perldoc をあさっているのですが,見つからないので,どなたか(どこに出ている > という情報でもよいので)教えてください. 例えば、カタカナだけ抜くのであれば、 \p{Katakana} という表現が出来ます。以下、一例。 binmode STDIN =>":utf8"; binmode STDOUT=>":utf8"; while(<>){ my @words = /(\p{Han}+|\p{Hiragana}+|\p{Katakana}+|\p{latin}+)/g; print join("," => @words), "\n"; } __END__ これに、 漢字カタカナひらがなの混じったtext をUTF-8で食わせると、 漢字,カタカナ,ひらがなの,混,じった,text と出てきます。\p{}の詳しい使い方は、perldoc perlunicodeをご覧ください。 Dan the Perl5 Porter From k.okabe @ ntt-bb.com Thu Nov 20 23:01:38 2003 From: k.okabe @ ntt-bb.com (Keiichi Okabe) Date: Thu Aug 5 00:23:04 2004 Subject: [Tokyo.pm] utf-8 =?ISO-2022-JP?B?GyRCTVEkThsoQiAid29yZA==?= =?ISO-2022-JP?B?IiBjaGFyIBskQiRDJEYhKRsoQg==?= In-Reply-To: <1789BE70-1B84-11D8-B6CD-000393AE4244@dan.co.jp> References: <1789BE70-1B84-11D8-B6CD-000393AE4244@dan.co.jp> Message-ID: 岡部です. >Perlのソノ部分担当の弾です。 まいど.utf8 って書けば召喚できるかな,と期待してました. (^^) >ちょっと定義が曖昧でわかりません。要するに、漢字なら漢字、カタカナならカタ >カナ、ひらがなならひらがなだけ抜き出せればよいのでしょうか?あるい >は、日本語としてOKな文字をすべて取り出すという意味でしょうか?とりあえず前 >者の場合を想定すると..... すいません.出してから,あいまいな定義を書いちゃったと思ったのですが, 修正する前にお返事をいただきました.両方とものことを同時に考えていました. で,前者については > my @words = /(\p{Han}+|\p{Hiragana}+|\p{Katakana}+|\p{latin}+)/g; で,ばっちりです.perlre とかばかりみていて,perlunicodeは見ていませんでした. ありがとうございます. 次に後者の方 「日本語としてOKな文字をすべて抜き出す」ということは 可能なのでしょうか? これは何かで使うというよりは参考にお伺いしたいです. unicode(から/への)変換には変換テーブルを使用するでしょうから,変換テーブル に乗っている文字であれば日本語とみなすことで判断できるのかな,と 考えました. # そうだとしても,どうやって使うのかなぁ〜って感じですが… -- k.okabe@ntt-bb.com 岡部 恵一 成功出於衆者、先知也、先知者、必取於人、知敵之情者也 孫子 用間篇 第十三