diff options
author | Yves Orton <demerphq@gmail.com> | 2022-04-14 06:29:04 +0200 |
---|---|---|
committer | Karl Williamson <khw@cpan.org> | 2022-04-19 05:41:19 -0600 |
commit | 7e7acb3693b3c128124ce984285dfb14c7015247 (patch) | |
tree | 8c4246dbae108fb12e4f5f3417b064b05a846747 | |
parent | 2cba836215fb7e9ed9fea15279702dc683b1a088 (diff) | |
download | perl-7e7acb3693b3c128124ce984285dfb14c7015247.tar.gz |
regen/mph.pl - move bucket info construction log into a sub
In a follow up patch this logic will get called from more than one place
so move it to a sub so it can be used easily.
-rw-r--r-- | regen/mph.pl | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/regen/mph.pl b/regen/mph.pl index e859d4fbb5..698201e16b 100644 --- a/regen/mph.pl +++ b/regen/mph.pl @@ -118,13 +118,7 @@ sub build_perfect_hash { my %seen; next SEED2 if grep { $second_level[$_] || $seen{$_}++ } @idx; $first_level[$first_idx]= $seed2; - @second_level[@idx]= map { - - +{ - key => $_, - seed2 => 0, - } - } @$keys; + @second_level[@idx]= map { _make_bucket_info($_) } @$keys; last; } } @@ -141,6 +135,15 @@ sub build_perfect_hash { return $seed1, \@second_level; } +sub _make_bucket_info { + my ($key)= @_; + return +{ + key => $key, + seed2 => undef, # will be filled in later + idx => undef, # will be filled in later + }; +} + sub _sort_keys_longest_first { my ($hash)= shift; my @keys= sort { length($b) <=> length($a) || $a cmp $b } keys %$hash; |