Lowry76 has asked for the wisdom of the Perl Monks concerning the following question:
Hi all I'm looking for a fast way of converting a sequence of four characters (a,b,c,d) to a number. So far I use
I also tried using a hash of form {a=>00,b=>01,c=>10,d=>11} or use four substitutes on $string which should have been kind of four times the runtime (processing the complete string 4 times). But somehow the regexp substitution seems to be the fastest. However, it's still pretty slow if I'm iterating over millions of strings. Any faster solution? Cheers, Lowrymy $lt = []; $lt->[ord(a)] = 00; $lt->[ord(b)] = 01; $lt->[ord(c)] = 10; $lt->[ord(d)] = 11; foreach my $string{ _convert($string); ... sub _convert{ my $string = shift; my $bs=""; foreach(split(//,$string)){ $bs.=$lt->[$_]; } return int($bs); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: convert each character of a string to number
by tybalt89 (Monsignor) on Feb 12, 2017 at 04:04 UTC | |
by haukex (Archbishop) on Feb 12, 2017 at 09:45 UTC | |
|
Re: convert each character of a string to number
by kcott (Archbishop) on Feb 12, 2017 at 06:00 UTC | |
|
Re: convert each character of a string to number
by poj (Abbot) on Feb 12, 2017 at 16:00 UTC |