On 1/11/19 11:50 AM, ToddAndMargo via perl6-users wrote:
On 1/11/19 11:43 AM, ToddAndMargo via perl6-users wrote:
On 1/11/19 11:39 AM, ToddAndMargo via perl6-users wrote:
On 1/11/19 11:33 AM, JJ Merelo wrote:
I think you want $x, not $Ace.

Cheers

Yup.  I am on fire today!  :'(

Still can't get it figured out.  :'(  :'(

$ p6 'my $x="Ace"; my %Vendors=("acme" => { "ContactName" => "Larry", "AccountNo" => 1234 }, "Ace" => { "ContactName" => "Mo", "AccountNo" => "A102" } ); say "%Vendors<$x><ContactName>" ~ "\t" ~ "%Vendors<$x><AccountNo>";'
Use of uninitialized value of type Any in string context.


$ p6 'my $x="Ace"; my %Vendors=("acme" => { "ContactName" => "Larry", "AccountNo" => 1234 }, "Ace" => { "ContactName" => "Mo", "AccountNo" => "A102" } ); say "%Vendors<"$x"><ContactName>" ~ "\t" ~ "%Vendors<"$x"><AccountNo>";'
Use of uninitialized value of type Any in string context.

$ p6 'my $x="Ace"; my %Vendors=("acme" => { "ContactName" => "Larry", "AccountNo" => 1234 }, "Ace" => { "ContactName" => "Mo", "AccountNo" => "A102" } ); say "%Vendors<{$x}><ContactName>" ~ "\t" ~ "%Vendors<{$x}><AccountNo>";'
Use of uninitialized value of type Any in string context.

$ p6 'my $x="Ace"; my %Vendors=("acme" => { "ContactName" => "Larry", "AccountNo" => 1234 }, "Ace" => { "ContactName" => "Mo", "AccountNo" => "A102" } ); say "%Vendors<{"$x"}><ContactName>" ~ "\t" ~ "%Vendors<{"$x"}><AccountNo>";'
Use of uninitialized value of type Any in string context.


I can't win.


$ p6 'my $x="Ace"; my %Vendors=("acme" => { "ContactName" => "Larry", "AccountNo" => 1234 }, "Ace" => { "ContactName" => "Mo", "AccountNo" => "A102" } ); say "%Vendors<<$x>><ContactName>" ~ "\t" ~ "%Vendors<<$x>><AccountNo>";'
===SORRY!===
Unable to parse expression in double quotes; couldn't find final '"' (corresponding starter was at line 1)
at -e:1
------> >" ~ "\t" ~ "%Vendors<<$x>><AccountNo>";⏏<EOL>
     expecting any of:
         double quotes
         postfix
Other potential difficulties:
     Ambiguous use of >>; use » instead to mean hyper, or insert whitespace before >> to mean a quote terminator (or use different delimiters?)
     at -e:1
     ------> 2" } ); say "%Vendors<<$x>><ContactName>⏏" ~ "\t" ~ "%Vendors<<$x>><AccountNo>";      Ambiguous use of >>; use » instead to mean hyper, or insert whitespace before >> to mean a quote terminator (or use different delimiters?)
     at -e:1
     ------> me>" ~ "\t" ~ "%Vendors<<$x>><AccountNo>⏏";


I got it finally.  I had to switch from a one liner to an actual program


<code HashOfHashTest.pl6>
#! /usr/bin/env perl6

my $x       = "Ace";
my %Vendors = ( "acme" => { "ContactName" => "Larry", "AccountNo" => 1234 },                 "Ace" =>  { "ContactName" => "Mo",    "AccountNo" => "A102" } );

print( %Vendors<< $x >><ContactName> ~ "\t" ~ %Vendors<< $x >><AccountNo> ~ "\n" );
<M/code>


$ HashOfHashTest.pl6
Mo    A102

And it demanded a white space in << $x >>


And as Bruce pointed out, it should the %Vendors{$x}<ContactName>

Reply via email to