Manchmal möchte ich keine mehrfachen Dateien, besonders wenn ich mit einer Idee herumspiele, dass ich eine nette Struktur behalten möchte, die später etwas werden kann. Ich möchte so etwas wie dies tun:Wie kann ich ein Perl 6-Modul in derselben Datei wie das Programm deklarieren und verwenden?
module Foo {
sub foo (Int:D $number) is export {
say "In Foo";
}
}
foo(137);
das Lauf, erhalte ich einen Kompilierungsfehler (was meiner Meinung nach ein wenig seltsam für eine dynamische Sprache ist):
===SORRY!=== Error while compiling /Users/brian/Desktop/multi.pl
Undeclared routine:
foo used at line 9
the Perl 6 "Modules" documentation Lesen, I sehe keine Möglichkeit, dies zu tun, da die verschiedenen Verben in einer bestimmten Datei suchen wollen.
> ich einen Kompilierungsfehler (was meiner Meinung nach ein wenig für eine dynamische Sprache ungerade ist) Haben Sie durch jnthn ausgezeichneten PDF warf einen Blick [über statische Erste vs. dynamische] (http://www.jnthn.net /papers/2015-fosdem-static-dynamic.pdf)? (jnthn war zu der Zeit krank und es gibt noch andere kleinere Probleme so [seine Live-Präsentation] (https://www.youtube.com/watch?v=id4pDstMu1s&index=19&list=PLRuESFRW2Fa77XObvk7-BYVFwobZHdXdK) ist nicht groß, aber es ist OK.) – raiph
@raiph Ich habe das vor einer langen Zeit gelesen, aber ich denke, du wirst mehr sagen müssen, um etwas klarzustellen. –
Aiui Perl 6 ist teilweise eine statische Sprache, z. B. in der Lage zu sein type Checking und Versandauflösung für Multisubs (z. B. Operatoren) und private Methoden zur Kompilierzeit in der Regel zu tun. Ich habe deinen "seltsamen" Kommentar genommen, um zu sagen, dass du die Dinge nicht so gesehen hast und dich gefragt hast, ob du Jnthns Präsentation gesehen hast. – raiph