
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) Митинг 4 февраля сократят из-за мороза |
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
|