diff options
Diffstat (limited to 'lib/mergehash.pm6')
-rw-r--r-- | lib/mergehash.pm6 | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/mergehash.pm6 b/lib/mergehash.pm6 new file mode 100644 index 0000000..206c881 --- /dev/null +++ b/lib/mergehash.pm6 @@ -0,0 +1,18 @@ +use MONKEY; +augment class Hash { + method merge (%b) { + hashmerge self, %b; + self; + } + sub hashmerge (%merge-into, %merge-source) { + for %merge-source.keys { + if %merge-into{$_}:exists { + hashmerge %merge-into{$_}, %merge-source{$_}; + } + else { + %merge-into{$_} = %merge-source{$_}; + } + } + %merge-into; + } +} |