On 2016-10月-23 日 21:44:35, manabe.hiroshi@gmail.com wrote: > On 2016-10月-23 日 21:23:20, manabe.hiroshi@gmail.com wrote: > > You can reproduc the bug with the following procedure: > > 1. perl -CO -e 'print "a\x{e4}";' > foo.txt # aä > > 2. perl -CI -e 'open IN, "<", "foo.txt"; $_ = <IN>; print > > m{^a|a\x{e4}$} . "matched\n" : "not matched\n"; > > Output: not matched > > > > This happenes only when the string is read from a file handle and the > > second character is in the range of \x{80}-\x{ff}. > > Curiously enough, the match succeeds if the regexp is m{^a|a[\x{e3}- > > \x{e4}]$} or m{^a|a[\x{e4}-\x{e5}]$}, but not if it is m{^a|a[\x{e4}- > > \x{e4}]$}. > > Sorry, the bug only reproduces itself when there is a set of > parenthes, i.e. m{^(a|a\x{e4})$} etc. Sorry again, the correct unicode option for the step 2 was -Ci.Thread Previous | Thread Next