in reply to Re^4: How to find Unicode: 0x13 in File
in thread How to find Unicode: 0x13 in File
The false positive does not show on my pc unless I use unpack('h*' $_); so I am sure it is a platform/architecture scenario between our PC's.
Not a platform mismatch, I would say, but probably because you're still reading a single character at a time from the file. If more than one character is read, the /13/ ambiguity | false positive can appear with either 'H*' or 'h*' unpack templates:
(BTW: The * in both 'H*' and 'h*' implies reading and operating on a string of more than one character.)c:\@Work\Perl>perl -wMstrict -le "print 'A: found 0x13!' if unpack('H*', 'a1') =~ /13/; print 'B: found 0x13!' if unpack('h*', qq{\x{1f}s}) =~ /13/; " A: found 0x13! B: found 0x13!
I am not up to par on Unicode because ...
... and because you value your sanity.
Update: Another, perhaps more general, code example:
c:\@Work\Perl>perl -wMstrict -le "use Data::Dump qw(pp); ;; for my $s ('a1', qq{\x{1f}s}) { print q{'H*' found 0x13! in }, pp($s) if unpack('H*', $s) =~ /13/; print q{'h*' found 0x13! in }, pp($s) if unpack('h*', $s) =~ /13/; } " 'H*' found 0x13! in "a1" 'h*' found 0x13! in "a1" 'h*' found 0x13! in "\37s"
Give a man a fish: <%-{-{-{-<
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: How to find Unicode: 0x13 in File
by james28909 (Deacon) on Nov 19, 2016 at 15:55 UTC | |
by AnomalousMonk (Archbishop) on Nov 19, 2016 at 17:27 UTC |