
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
|