perl6.suОсвоим perl6 к 2015 году!

nota XLI. Интерполяция переменных


       Вот, допустим, у нас есть переменная $abc. Её можно интерполировать в строку как обычно:
    
#!/usr/bin/perl6
my $abc='bestiae';
my $sententia="Etiam $abc memoriam habent";
$sententia.say;
Etiam bestiae memoriam habent

       Если же мы имеем массив, то один элемент можем вставить.
    
#!/usr/bin/perl6
my @abc;
@abc[0]='bestiae'; # до 2011.07 можно сразу было написать: my @abc[0]='bestiae'
"Etiam @abc[0] memoriam habent".say;
Etiam bestiae memoriam habent

       А полностью массив надо вставлять по-другому (не как в perl 5).
    
#!/usr/bin/perl6
my @abc=<memoria tenemus>;
"Tantum scimus, quantum @abc".say;
"Tantum scimus, quantum {@abc}".say;
"Tantum scimus, quantum @abc[]".say;
Tantum scimus, quantum @abc
Tantum scimus, quantum memoria tenemus
Tantum scimus, quantum memoria tenemus

       То же с хэшами.
    
#!/usr/bin/perl6
my %abc=<unus aliquando duo pro>;
"Venenum %abc{'unus'} %abc{'duo'} remedio est.".say;
"Venenum %abc remedio est.".say;
"Venenum %abc{} remedio est.".say;
"Venenum {%abc} remedio est.".say;
Venenum aliquando pro remedio est.
Venenum %abc remedio est.
Venenum unus	aliquando duo	pro remedio est.
Venenum unus	aliquando duo	pro remedio est.

       Интересно, а можно ли расчитывать, что во время интерполяции " %abc{} " порядок записей в хэше сохранится?
    
#!/usr/bin/perl6
my %abc=<1 unus 2 duo 3 tres 4 quattuor 5 quinque 6 sex 7 septem 8 octem 9 novem 10 decim>;
"%abc{}".say;
%abc=<01 unus 02 duo 03 tres 04 quattuor 05 quinque 06 sex 07 septem 08 octem 09 novem 10 decim>;
"%abc{}".say;
%abc=<aaaa unus aaab duo aaba tres aabb quattuor abaa quinque abab sex abba septem abbb octem baaa novem baab decim>;
"%abc{}".say;
1	unus 2	duo 3	tres 4	quattuor 5	quinque 6	sex 7	septem 8	octem 9	novem 10	decim
01	unus 02	duo 03	tres 04	quattuor 05	quinque 06	sex 07	septem 08	octem 09	novem 10	decim
aaaa	unus aaab	duo aaba	tres aabb	quattuor abaa	quinque abab	sex abba	septem abbb	octem baaa	novem baab	decim

       Короче говоря, надеяться на то, что хэш добровольно отдаст ключи-значения в каком-то порядке, non licet.
# mutatio postrema: 20 Aug 2011

   интерполяция      charta situs       nota XL <<     >> nota XLII   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011