トップ «前の日記(■2004-08-23) 最新 次の日記(■2004-09-01)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2004-08-27

* [Perl] Perl 5.8.4とXML::Parser::LiteHeavyB!

 XML::Parser::LiteHeavyが動作しないとのコメントを頂きました。調べてみると、Perl 5.8.4から正規表現の動作が変更になっていました。

プラグマは正規表現の(?{...})構造に正しく伝播されるようになりました。次のようなコード
my $x = qr{ ... (??{ $x }) ... };
は、use strict下において(正しく)失敗します(内側の$xは$::xを参照しているので)。
perl584delta Selected Bug Fixes)

  というわけで、strictが正規表現内部のコード部分にも適用されてエラーになってたようです。変数を明示的にして解決したのですが、どうもまだ他の部分で問題があるらしく正しくパースしてくれません。じっくり調べるている時間がないので、応急措置としてコールバックの種類が少ないバージョンを用意しました。これは単純にXML::Parser::Liteで使われている正規表現に修正を加えたものです。LiteHeavyはコールバックの種類を増やしたため、正規表現がより複雑になっていて、収拾がつきません。時間に余裕が出来たら見直そうと思います。ついでに、開始タグと閉じタグが一致しているかチェックしていないという致命的なミスがあったので、こちらも直しました。

 コメントを下さった方へ:ソース内のmakamaka[at]donzoko.netが連絡先だったのですが、やはりわかりにくかったでしょうか……

本日のツッコミ(全1件) [ツッコミを入れる]
_ jjx (■2004-08-29 20:55)

対応ありがとうございます. #メールアドレス... 気がつきませんでした.申し訳ありません

[]