On Mon, 13 Feb 2017 14:38:03 -0800, [email protected] wrote:
> $ echo %windir%
> C:\WINDOWS
>
> $ echo %WINDIR%
> C:\WINDOWS
>
> $ c:\opt\perl6-mingw\bin\perl6 -e "say %*ENV<WINDIR>"
> (Any)
>
> $ c:\opt\perl6-mingw\bin\perl6 -e "say %*ENV<windir>"
> C:\WINDOWS
>
> $ c:\opt\perl6-mingw\bin\perl6 -v
> This is Rakudo version 2017.01 built on MoarVM version 2017.01
> implementing Perl 6.c.
>
> Both %*ENV<WINDIR> and %*ENV<windir> (as well as, e.g., %*ENV<WinDir>
> etc) should return 'C:\WINDOWS'.
>
> -- Sinan
What would be a good approach? Store them in whatever case they come in, but
apply fc() when looking up keys?
If I dump all the vars with `set` I see all-uppercase, mixed-case, and
all-lowercase vars. Perl 5 seems to uppercase them all (when I dump %ENV with
Data::Dumper). And that naturally leads to what to do with stuff like 'ß',
which Perl 5 dumps out to me as `'▀' => '42',`
---
I'm thinking of just sticking a subclass of Hash to %*ENV on Windows, something
along the lines of
$ perl6 -e 'my %h := class :: is Hash { method AT-KEY ($k) { nextwith $k.fc
}; method ASSIGN-KEY ($k, $v) { nextwith $k.fc, $v } }.new; %h<Foo> = 42; dd
%h; dd %h<foo>'
{:foo(42)}
Int <element> = 42