perl6 - sub/hash syntax

01/08/2010 - 14:32 von ekkehard.horner | Report spam
Beim Betreten von Neuland (neue Sprache/Technologie) benutze ich gerne
Programme/Skripte, die - ueber ein Kommandozeilenargument gesteuert -
unterschiedliche Subroutinen (quasi mains) aufrufen; das erleichtert mir
die Auseinandersetzung mit den vielen, ganz heterogenen Stolpersteinen,
die man als Anfaenger ueberwinden muss.

Ich nehme ja an, dass ein Perl6-Guru soetwas mit Introspektion und
Attributen elegant erledigt; ich moechte es zunaechst ganz einfach
halten.

Das auf das unbedingt Noetige reduzierte Skript:

use v6;

my %fs = ();

%fs{ lc( 'A' ) } = &fa;
sub fa() {
return 'fa called.';
}

;

%fs{ lc( 'B' ) } = &fb;
sub fb() {
return 'fb called.';
}

my $fn = lc( @*ARGS[ 0 ] || 'A' );
printf "%s", %fs{ $fn }();

exit( 0 );

macht was ich will:

PARROT E:\proj\xpl\perl6\archive\00
perl6 -v

This is Rakudo Perl 6, version 2010.07-47-g9fd5eaa built on parrot 2.6.0

Copyright 2008-2010, The Perl Foundation

PARROT E:\proj\xpl\perl6\archive\00
perl6 xpl02.pl6 B
fb called.

PARROT E:\proj\xpl\perl6\archive\00
perl6 xpl02.pl6 A
fa called.

aber wenn ich das einsame Semikolon in der Mitte (Zeile 10) tilge,
erhalte ich die Fehlermeldung:

PARROT E:\proj\xpl\perl6\archive\00
perl6 xpl02.pl6 A
Could not find sub &fs
in main program body at line 12:xpl02.pl6

Ist das ein Bug oder ein Feature?
 

Lesen sie die antworten

#1 ReneeB
01/08/2010 - 15:46 | Warnen spam
On 1 Aug., 14:32, "ekkehard.horner" wrote:
aber wenn ich das einsame Semikolon in der Mitte (Zeile 10) tilge,
erhalte ich die Fehlermeldung:

   PARROT E:\proj\xpl\perl6\archive\00
   perl6 xpl02.pl6 A
   Could not find sub &fs
     in main program body at line 12:xpl02.pl6

Ist das ein Bug oder ein Feature?



Ich halte das für einen Bug, weil das hier anscheinend als Infix "%"
geparst wird. Man kann so ziemlich alles nach der Subdeklaration
schreiben außer "%".

Würdest Du das bitte an die Perl 6 Leute reporten?!

Gruß,
Renée

Ähnliche fragen