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

~


       Пробуем склеивать строки.
    
#!/usr/bin/perl6
my $a='Per';
my $b='lapsum';
my $c='linguae';
my $d=$a ~ $b ~ $c;
$d.say;
Perlapsumlinguae

       Perl apsumlin guae? Да не так же...
    
#!/usr/bin/perl6
my $a='Per';
my $b='lapsum';
my $c='linguae';
my $d=$a ~ ' ' ~ $b ~ ' ' ~ $c;
$d.say;
Per lapsum linguae

       Вот так лучше. Очевидно, конкатенация с собой тоже должна работать.
    
#!/usr/bin/perl6
my $a='In';
$a ~= ' actu';
$a.say;
In actu

       Кстати, ~= напоминает старую форму поиска регулярными выражениями. Понятно, что точками сейчас нельзя клеить. Теперь эта цепочка методов.
# mutatio postrema: 24 Aug 2010


       Мы уже использовали тильду в целях конкатенации.
    
#!/usr/bin/perl6
my $abc='кон' ~ 'ка' ~ 'тенация';
$abc.say;
конкатенация

       Оказывается, тильду можно применять и на массивах и списках.
    
#!/usr/bin/perl6
say <ко нка тена ция>;
say ~<ко нка тена ция>;
my @mass=<ко нка тена ция>;
say @mass;
say ~@mass;
ко нка тена ция
ко нка тена ция
ко нка тена ция
ко нка тена ция

       То есть тильда-лист возвращает один скаляр, склеивая элементы массива через пробел?
    
#!/usr/bin/perl6
my @mass=<ко нка тена ция>;
@mass=@mass.sort;
# my $out=~@mass; # так нельзя.  =~  приводит к ошибке "вы не в perl 5"
my $out=(~@mass);
$out.say;
ко нка тена ция

       Sic.
       Очевидно, можно склеивать таким образом скаляры и листы.
    
#!/usr/bin/perl6
my @mass=<ко нка тена ция>;
my $text='наш путь - ' ~ @mass;
$text.say;
наш путь - ко нка тена ция

       Si sic?
    
#!/usr/bin/perl6
my @mass=<ко нка тена ция>;
~@mass.say;
(~@mass).say;
ко нка тена ция
ко нка тена ция

       Неопознанное явление. Видимо, в первом случае это равносильно ~(@mass.say).
       N.B. Тильда нередко требует скобок.
# mutatio postrema: 16 Sep 2010


       Как настоящие гурманы попробуем сложить тильду и хэш.
    
#!/usr/bin/perl6
my %hash=<гурман epulo гурманы epulones>;
my $text='начало' ~ %hash ~ 'конец';
$text.say;
началогурман	epulo гурманы	epulonesконец

       Честно говоря, неожиданно. Я думал, что всё будет в одну строку... А тут еще добавились переводы строк. Видимо это удобно для вывода содержания хэша. Для всего остального подойдет вряд ли, потому что обычно порядок имеет значение, а хэши подчеркнуто неорганизованные товарищи.
# mutatio postrema: 16 Sep 2010

   конкатенация, ~      charta situs       nota XXI, nota LXI, nota LXII   

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