in reply to Re: Parsing named parameters
in thread Parsing named parameters
As dwildesnl suggested, reversing makes it significantly faster: see benchmark below. But don't do the optimisation unless you need it!
gives results:my $data = <DATA>; use Benchmark "cmpthese"; cmpthese(10_000, { "reversed" => sub { my %hash; my $reversed_data = reverse($data); $hash{reverse($2)} = reverse($1) while $reversed_data =~ /\s*([^=]+?)\s*=\s*(\w+)/g; }, "non-reversed" => sub { my %hash; my $data = $data; $hash{$1} = $2 while $data =~ s/\s*(\w+)\s*=\s*([^=]+)$//; }, }); __DATA__ option1 = value0 value1 value2 option3 =value3 value4 option2=value5
Rate non-reversed reversed non-reversed 1263/s -- -89% reversed 10989/s 770% --
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Parsing named parameters
by BrowserUk (Patriarch) on Nov 07, 2005 at 15:18 UTC | |
by robin (Chaplain) on Nov 07, 2005 at 15:28 UTC | |
by BrowserUk (Patriarch) on Nov 07, 2005 at 15:30 UTC | |
by robin (Chaplain) on Nov 07, 2005 at 15:45 UTC | |
by BrowserUk (Patriarch) on Nov 07, 2005 at 16:44 UTC |
In Section
Seekers of Perl Wisdom