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

say


       Раньше для вывода на печать использовали print, где в большинстве случаев использовали в конце перевод строки "\n":
       print "Habeo symbolum\n";
       Теперь мы можем написать короче, сэкономив четыре удара по клавиатуре:
    
#!/usr/bin/perl6
say "Non habeo symbolum";
Non habeo symbolum

       Вроде бы мелочь. Однако программы станут за счет say процентов на пять короче. Весьма приличная экономия времени на самом деле. Ещё к тому же реже надо будет использовать двойные кавычки.
    
#!/usr/bin/perl6
my @list=<unus duo tres quattuor quinque sex septem>;
for (@list) {print "$_\n"} # по старинке
for @list {.say}           # nunc 
unus
duo
tres
quattuor
quinque
sex
septem
unus
duo
tres
quattuor
quinque
sex
septem

       И короче, и легче восприятие кода.
       Портит настроение только необходимость обязательного использования my. Сэкономив с say, потратим наше время на написание my.
# mutatio postrema: 28 Apr 2011


       Открывать файл для записи следует с определенным ключом (w).
    
#!/usr/bin/perl6
my $file=open 'out.tmp',:w;
$file.say('ave mundus');
$file.close;
$file=open 'out.tmp'; # проверяем
$file.get.say;
$file.close;
ave mundus

       Видимо, такое открытие файла для записи удаляет всё прежде имевшееся в нём. Проверим.
    
#!/usr/bin/perl6
my $file=open 'out.tmp',:w; $file.say('ave mundus'); $file.close;
$file=open 'out.tmp',:w; $file.say('ave mundus'); $file.close;
$file=open 'out.tmp',:w; $file.say('ave mundus'); $file.close;
my $content=slurp 'out.tmp';
$content.say;
ave mundus

       Так мы и думали. Видно, кстати, что писали мы просто 'ave mundus', а получили назад оный же только плюс перевод строки. Понятно, что это say. Однако...
       N.B. Никогда не надо забывать про возможные коллизии с наличием-отсутствием символа перевода строки.
       А как теперь дописывать в уже имеющийся файл?
# mutatio postrema: 17 Sep 2010

   вывод на печать, close, get, open, print, say, slurp      charta situs       nota II, nota LXV   

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