develooper Front page | perl.perl6.users | Postings from January 2019

Re: I need hash string help

Thread Previous | Thread Next
From:
ToddAndMargo via perl6-users
Date:
January 12, 2019 02:54
Subject:
Re: I need hash string help
Message ID:
1d0156ee-0d7c-4b63-7369-ac696f79a4eb@zoho.com
On 1/11/19 6:51 PM, ToddAndMargo via perl6-users wrote:
> On 1/11/19 6:49 PM, Brad Gilbert wrote:
>> $a<a b> is short for $a{'a','b'}
>>
>> This also happens in string literals
>>
>>      my $a = { a => 1, b => 2 };
>>      say "$a<a b>"; # 1 2
>>      say "$a{'a','b'}"; # 1 2
>>
>> A simple way to stop this is to add a backslash
>>
>>      my $a = 'b'
>>      say "$a\<a b>"; # b<a b>
>>
>> You can also call methods on variables in string literals, as long as
>> you use parentheses.
>>
>>      my $a = Date.today;
>>      say "$a.year()-$a.month()-$a.day()"; # 2019-1-11
>>
>> (Note that Date has a .yyyy-mm-dd() method)
>>
>> ---
>>
>> Looking at the message you just added:
>>
>> Perl 6 has a Version type.
>>
>>      my $a = Version.new("12.3.4.1");
>>      my $b = Version.new("111.3.4.1");
>>
>>      say $a before $b; # True
>>
>> Also there is syntax for creating a Version literal
>>
>>      my $a = v12.3.4.1;
>>      my $b = v111.3.4.1;
>>
>>      say $a before $b; # True
>>
>> There are useful methods on Versions
>>
>>      my $a = v12.3.4.1;
>>      say $a.parts.perl; # (12, 3, 4, 1)
>>
>> On Fri, Jan 11, 2019 at 8:12 PM ToddAndMargo via perl6-users
>> <perl6-users@perl.org> wrote:
>>>
>>> On 1/11/19 5:08 PM, ToddAndMargo via perl6-users wrote:
>>>> Hi All,
>>>>
>>>> Now what am I doing wrong?  I need to convert the value in a
>>>> hash to a string:
>>>>
>>>> $ p6 'my $x = "acme"; my Str $y; my %Vendors = ( acme => ContactName =>
>>>> "Larry" ); $y= %Vendors<ContactName>; say $y;'
>>>> Type check failed in assignment to $y; expected Str but got Any (Any)
>>>>     in block <unit> at -e line 1
>>>>
>>>>
>>>> $ p6 'my $x = "acme"; my Str $y; my %Vendors = ( acme => ContactName =>
>>>> "Larry" ); $y= %Vendors<ContactName>.Str; say $y;'
>>>> Use of uninitialized value of type Any in string context.
>>>> Methods .^name, .perl, .gist, or .say can be used to stringify it to
>>>> something meaningful.
>>>>     in block <unit> at -e line 1
>>>>
>>>>
>>>> Many thanks,
>>>> -T
>>>
>>> Figured out my booboo. I had to change from
>>>
>>>      $PartsStr =
>>>         "Hi $Manager,<br><br>" ~
>>>         "Account Number: <b>$AccountNo</b><br><br>" ~
>>>
>>> to
>>>
>>>      $PartsStr =
>>>         "Hi " ~ $Manager ~ ",<br><br>" ~
>>>         "Account Number: <b>" ~ $AccountNo ~ "</b><br><br>" ~
> 
> 
> Thank you!

Come to think of it, I should have known better.  I have
these proofing line all over the place:

PrintGreenErr( "WebPage = <<<" ~ $WebPage ~ ">>>\n" );

I need to start using single quotes with writing HTML.
That way I will be forces to use ~ to add variables
to the text.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About