From f516e377ac7f48fa2e836a2f5382cbd7459ea6de Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 24 Apr 2017 14:13:06 -0700 Subject: Initial commit of merge hash functionality --- mergehash.p6 | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 mergehash.p6 diff --git a/mergehash.p6 b/mergehash.p6 new file mode 100644 index 0000000..84ef007 --- /dev/null +++ b/mergehash.p6 @@ -0,0 +1,28 @@ +use MONKEY; +my %a; +my %b; +#%a = "orig"; +#%b = "new"; +%a = 1; +%b = 2; +%a = 2; +%b = 1; +%a.merge(%b).say; +say %b; +augment class Hash { + method merge (%b) { + hashmerge self, %b; + self; + } + sub hashmerge (%merge-source, %merge-into) { + for %merge-source.keys { + if %merge-into{$_}:exists { + hashmerge %merge-source{$_}, %merge-into{$_}; + } + else { + %merge-into{$_} = %merge-source{$_}; + } + } + %merge-into; + } +} \ No newline at end of file -- cgit v1.1