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
In reply to Re: Re: Re: Peeling the Peelings
by PetaMem
in thread Peeling the Peelings
by PetaMem
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |