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

get


       Имеем файл '/bibl/last.news', в котором содержатся заголовки последних новостей с lenta.ru. Попробуем прочитать первую в списке новость.
    
#!/usr/bin/perl6
my $novitates=open '/bibl/last.news';
my $novitas=get $novitates;
$novitas.say;
Госдума предложила запретить электронные сигареты

       Legimus. Будем знать. get легко забирает у файла его первую строку. А если еще раз сделать get?
    
#!/usr/bin/perl6
my $novitates=open '/bibl/last.news';
my $novitas=get $novitates;
$novitas.say;
$novitas=get $novitates;
$novitas.say;
Госдума предложила запретить электронные сигареты
Всеволод Чаплин назвал фильм НТВ о церкви адекватным

       Legimus. Новости важные, но двигаемся дальше. Очевидно, get забирает строки, пока это возможно. Скорее всего, имеется средство, позволяющее сразу вывести содержание файла в массив. Sic!
    
#!/usr/bin/perl6
my $novitates=open '/bibl/last.news';
my @list=$novitates.lines;
@list.elems.say;
40

       elems выводит нам количество элементов в массиве. Заметно, что их больше одного в данном случае. Возьмём новость из середины листа:
    
#!/usr/bin/perl6
my $novitates=open '/bibl/last.news';
my @list=$novitates.lines;
my $num=0.5*@list.elems;
"$num) @list[$num]".say;
20) Евгений Малкин набрал три очка в матче НХЛ

       Bene.
# mutatio postrema: 8 Aug 2010


       Открывать файл для записи следует с определенным ключом (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, elems, get, lines, open, say, slurp      charta situs       nota V, nota LXV   

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