Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Comparing strings case insensitive

by sgifford (Prior)
on Sep 12, 2008 at 22:25 UTC ( #711028=note: print w/replies, xml ) Need Help??

in reply to Comparing strings case insensitive

lc is much faster, it seems to me, though both are very fast (each of these tests below is for 1m comparisons, so regexp had 150K/s, and lc 1830K/s).
Benchmark: timing 10 iterations of RegExp, lc... RegExp: 66 wallclock secs (66.20 CPU) @ 0.15/s (n=10) lc: 6 wallclock secs ( 5.47 CPU) @ 1.83/s (n=10)
#!/usr/bin/perl use warnings; use strict; use Benchmark; use constant SIZE => 1000; our @a1 = map { "a".$_ } (1..SIZE); our @a2 = map { "A".$_ } (1..SIZE); sub use_re { my $count = 0; foreach my $i (@a1) { foreach my $j (@a2) { if ($i =~ /^\Q$j\E$/i) { $count++; } } } die unless $count == SIZE; } sub use_lc { my $count = 0; foreach my $i (@a1) { foreach my $j (@a2) { if (lc $i eq lc $j) { $count++; } } } die unless $count == SIZE; } timethese(10, { RegExp => \&use_re, lc => \&use_lc, });

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://711028]
Discipulus desease the question..
[shmem]: Discipulus: war/peace is a question of fuel gauge position...
[Discipulus]: yes i saw your cell brother..
[Discipulus]: but now fuel is cheap and they still make some war.
[Discipulus]: capitalism is able to go to war by cycle, even.
[shmem]: some? are you jokin' ?

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2017-04-29 21:57 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (534 votes). Check out past polls.