in reply to Re: Re: Peeling the Peelings
in thread Peeling the Peelings
But not that much anymore: ;-)
sub get_proparg_new { my $propstr = shift; # get the property string my $level = shift || return $propstr; # get the level we want to e +xtract if($level == -1) { # special case, get the innermost argume +nt $propstr =~ /\(([^()]+)\)+/; return $1; } else { # get whatever argument $level indicates while ($level--) { $propstr =~ /\((.+)\)/; $propstr = $1; } } return $propstr; }
Benchmark: timing 25000 iterations of mine-elegant, mine-less-elegant, original, original++... mine-elegant: 5 wallclock secs ( 4.61 usr + 0.00 sys = 4.61 CPU) @ 5422.99/s (n=25000) mine-less-elegant: 2 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 11574.07/s (n=25000) original: 2 wallclock secs ( 2.55 usr + 0.00 sys = 2.55 CPU) @ 9803.92/s (n=25000) original++: 3 wallclock secs ( 2.32 usr + 0.00 sys = 2.32 CPU) @ 10775.86/s (n=25000)I guess I'll trade that performance loss against readability. But thanks for the Ideas I could borrow and reuse.
Bye
PetaMem All Perl: MT, NLP, NLU
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Re: Peeling the Peelings
by EvdB (Deacon) on Jul 02, 2003 at 14:31 UTC | |
by diotalevi (Canon) on Jul 02, 2003 at 19:49 UTC | |
by EvdB (Deacon) on Jul 03, 2003 at 09:16 UTC | |
by bobn (Chaplain) on Jul 02, 2003 at 15:51 UTC | |
by EvdB (Deacon) on Jul 03, 2003 at 09:02 UTC | |
|
Re: Re: Re: Re: Peeling the Peelings
by Jasper (Chaplain) on Jul 02, 2003 at 11:40 UTC |