Canadian Handicrafts Guild On Oct 3, 2017 11:22 AM, "ToddAndMargo" <toddandma...@zoho.com> wrote:
> Sweet! I added a reverse print to the pile! > > <code> > #!/usr/bin/env perl6 > > #`{ > Hashes do not print in the order they are created. it is a Perl 6 thing. > To overcome this, create an index of the hash. > } > > my @SmtpIndex = > qw[ DebugTrace smtp port username password from to Subject Text > FileName ]; > > my %Smtp = > [ "{ @SmtpIndex[0] }" => "1", > "{ @SmtpIndex[1] }" => "smtps://smtp.zoho.com", > "{ @SmtpIndex[2] }" => "465", > "{ @SmtpIndex[3] }" => 'la...@zoho.com', > "{ @SmtpIndex[4] }" => "NaYukYukYuk", > "{ @SmtpIndex[5] }" => 'la...@zoho.com', > "{ @SmtpIndex[6] }" => @['cu...@zoho.com','m...@zoho.com'], > "{ @SmtpIndex[7] }" => "Stooges", > "{ @SmtpIndex[8] }" => "Certainly!", > "{ @SmtpIndex[9] }" => @[""] ]; > > sub output(%hash, @index=@SmtpIndex) { > for @index -> $key { > printf "%10s = %s\n", $key, %hash{$key}; > } > print "\n"; > } > > sub revoutput(%hash, @index=@SmtpIndex) { > for reverse ( @index ) -> $key { > printf "%10s = %s\n", $key, %hash{$key}; > } > print "\n"; > } > > > my @SmtpValues = %Smtp{@SmtpIndex}; > > my %Smtp2 = do { > my $index = 0; > @SmtpValues.map: { "{ @SmtpIndex[$index++] }" => $_ }; > }; > > my %Smtp3 = gather for 0..@SmtpIndex.elems-1 { > take @SmtpIndex[$_] => @SmtpValues[$_].Str; > }; > > my %Smtp4 = @SmtpIndex Z=> @SmtpValues; > > # These are all equivalent > # output(%Smtp); > # output(%Smtp2); > # output(%Smtp3); > output(%Smtp4); > > # print in reverse > revoutput(%Smtp4); > </code> > > $ HashIndexTest.pl6 > DebugTrace = 1 > smtp = smtps://smtp.zoho.com > port = 465 > username = la...@zoho.com > password = NaYukYukYuk > from = la...@zoho.com > to = cu...@zoho.com m...@zoho.com > Subject = Stooges > Text = Certainly! > FileName = > > FileName = > Text = Certainly! > Subject = Stooges > to = cu...@zoho.com m...@zoho.com > from = la...@zoho.com > password = NaYukYukYuk > username = la...@zoho.com > port = 465 > smtp = smtps://smtp.zoho.com > DebugTrace = 1 >