`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-users@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.

Reply via email to