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 aliquando 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;
unus duo tres quattuor quinque sex septem octem novem decim
unus duo tres quattuor quinque sex septem octem novem decim
unus duo tres quattuor quinque sex septem octem novem decim

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

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

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