Как работает opendir в Perl 6? - PullRequest
       51

Как работает opendir в Perl 6?

1 голос
/ 26 февраля 2010

Может кто-нибудь сказать мне, почему "opendir" не работает?

#!/usr/bin/env perl6
use v6;

my $file = 'Dokumente/test_file';

if ( my $fh = open $file, :r ) {
    for $fh.lines -> $line {
    say $line;
    }
} else {
    say "Could not open '$file'";
}


my $dir = 'Dokumente';

my $dh = opendir $dir err die "Could not open $dir: $!";

Выход:

Привет, мир!
Строка 2.
Последняя линия.

Не удалось найти несуществующий подпункт & opendir
текущий инст.: '_block14' pc 29 (EVAL_1: 0)
вызывается из Sub '! UNIT_START' pc 1163 (src / glue / run.pir: 20)
вызывается из Sub 'perl6; PCT; HLLCompiler; eval' pc -1 ((неизвестный файл): - 1)
вызывается из Sub 'perl6; PCT; HLLCompiler; evalfiles' pc 1303 (compilers / pct / src / PCT / HLLCompiler.pir: 707)
вызывается из Sub 'perl6; PCT; HLLCompiler; command_line' pc 1489 (compilers / pct / src / PCT / HLLCompiler.pir: 794)
вызывается из Sub 'perl6; Perl6; Компилятор; main' pc -1 ((неизвестный файл): - 1)

Ответы [ 3 ]

3 голосов
/ 25 сентября 2018

Perl6 готов сейчас. Таким образом, мы можем дать правильный ответ на этот очень старый вопрос.

В Perl6 больше нет опендира. Но благодаря многим людям, которые работают на Perl 6, открыть каталог теперь очень просто.

Как Perl - DIR DOC говорит:

Для открытия каталога необходимо просто набрать:

for dir() -> $file {
    say $file;
}

И с фильтром:

for dir('/path/to/dir', test => /\.jpg$/ ) -> $file {
    say $file;
}

Так что вы можете забыть opendir, readdir, grep и другие.

1 голос
/ 28 февраля 2010

opendir просто еще не реализован. Пожалуйста, отправьте сообщение об ошибке, отправив письмо на rakudobug@perl.org.

0 голосов
/ 26 февраля 2010

У меня нет Perl 6, но похоже, что вы неправильно вызываете opendir. Этот фрагмент Perl работает для меня:

my $dh;
opendir $dh, '/home/ar' or die 'Could not open directory';
...