With the fifth script, I may have hit a glitch, either in Raduko or in my understanding of Perl 6.
my $wordfile = "wordlist.txt";
my @words = do
{
my $words = open($wordfile)// die "Unable to open $wordfile: $!\n";
=$words;
}
for (@*ARGS) -> $password
{
say $password;
}
fails with
Statement not terminated properly at line 9, near "-> $passwo"
current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)
called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 28665 (src/gen_grammar.pir:3378)
called from Sub 'parrot;Perl6;Grammar;statementlist' pc 27321 (src/gen_grammar.pir:2845)
called from Sub 'parrot;Perl6;Grammar;statement_block' pc 24757 (src/gen_grammar.pir:1838)
called from Sub 'parrot;Perl6;Grammar;TOP' pc 20647 (src/gen_grammar.pir:207)
called from Sub 'parrot;PCT;HLLCompiler;parse' pc 634 (src/PCT/HLLCompiler.pir:388)
called from Sub 'parrot;PCT;HLLCompiler;compile' pc 428 (src/PCT/HLLCompiler.pir:301)
called from Sub 'parrot;PCT;HLLCompiler;eval' pc 862 (src/PCT/HLLCompiler.pir:500)
called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1217 (src/PCT/HLLCompiler.pir:669)
called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1398 (src/PCT/HLLCompiler.pir:759)
called from Sub 'parrot;Perl6;Compiler;main' pc 18987 (perl6.pir:162)
Switching it to
my $wordfile = "wordlist.txt";
my @words = do
{
my $words = open($wordfile)// die "Unable to open $wordfile: $!\n";
=$words;
};
for (@*ARGS) -> $password
{
say $password;
}
makes it work perfectly.
Should the semicolon always be there after the do construct? If so, why does it work if you insert a "say;" before the for statement?
Fifth Script: Glitch 0 Comments More | Login | Reply /