Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: using bits to print part of a string

by choroba (Chancellor)
on Mar 15, 2013 at 16:03 UTC ( #1023730=note: print w/replies, xml ) Need Help??

in reply to using bits to print part of a string

I created the bit mask from the mask by replacing 0's by \x00 and 1's by \xff. Then, you can use bitwise & and can easily remove the resulting \x00's:
#!/usr/bin/perl use warnings; use strict; my $string = join q(), map int rand 10, 1 .. 400_000; my $mask = join q(), map int rand 2, 1 .. 400_000; $mask =~ tr/01/\x00\xff/; my $result = $string & $mask; $result =~ tr/\x00//d; print $result;
Updated: Using tr/ instead of s/ at line 10 speeds the method up.
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^2: using bits to print part of a string
by Anonymous Monk on Mar 15, 2013 at 16:44 UTC
    Yup, that is a lot faster. Brilliant, thanks!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1023730]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (11)
As of 2016-10-26 17:22 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (344 votes). Check out past polls.