`eq` is string equality `==` is numeric equality a Buf is neither.
You want `eqv` (equivalent) $b[2..4] eqv (0x90,0x00,0x04) On Fri, Feb 1, 2019 at 9:37 PM ToddAndMargo via perl6-users <perl6-us...@perl.org> wrote: > > On 2/1/19 7:22 PM, ToddAndMargo via perl6-users wrote: > > Hi All, > > > > On a type Buf, what do I use to check for the > > position of a byte pattern? > > > > > > Many thanks, > > -T > > > Basically, what am I doing wrong here? > > $ p6 'my $handle=open("filever.exe", :bin, :ro); my Buf $b; $b= > $handle.read(5); say $b; say $b[2..4];; if ( $b[2..4] eq 0x90,0x00,0x04 > ) {say "y";} else {say "n"}; $handle.close;' > Buf[uint8]:0x<4D 5A 90 00 03> > (144 0 3) > y > > > I am testing to see if the pattern 0x90 0x00 0x04 exists, > which is does not.