Domanda

Qualcuno può dirmi, perché il "opendir" non funziona?

#!/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: $!";

Output:

  

Ciao, mondo!
  Linea 2.
  Ultima linea.

     

Impossibile trovare sub inesistente & opendir
  Strumenti corrente .: '_block14' pc 29 (EVAL_1: 0)
  chiamato da sub PC 1163 (src / colla / run.pir: 20) 'UNIT_START!'
  chiamato da Sub 'perl6; PCT; HLLCompiler; eval' pc -1 ((file sconosciuto): - 1)
  chiamato da Sub 'perl6; PCT; HLLCompiler; evalfiles' pc 1303 (compilatori / PCT / src / PCT / HLLCompiler.pir: 707)
  chiamato da Sub 'perl6; PCT; HLLCompiler; command_line' pc 1489 (compilatori / PCT / src / PCT / HLLCompiler.pir: 794)
  chiamato da 'perl6; Perl6; compilatore; main' Sub pc -1 ((file sconosciuto): - 1)

È stato utile?

Soluzione

opendir è semplicemente non ancora implementata. Si prega di inviare una segnalazione di bug inviando una mail a rakudobug@perl.org.

Altri suggerimenti

Perl6 è pronto ora. Così possiamo dare una risposta corretta a questa domanda molto vecchio.

Non c'è più opendir in Perl6. Ma grazie a molte persone che lavorano su Perl 6, aprire un dir ora è molto semplice.

perl - doc dir dice:

Apertura di una directory richiede solo per tipo:

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

E con un filtro:

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

Così si può dimenticare opendir, readdir, grep e altri.

Non ho Perl 6, ma sembra che si sta chiamando opendir in modo non corretto. Questo frammento di codice perl funziona per me:

my $dh;
opendir $dh, '/home/ar' or die 'Could not open directory';
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top