Welcome to Perl9
For more information,please vist http://www.perl9.org
Perl 9 is the next major release after Perl 6. Perl 9 does provide all cool features of Perl 5 and Perl 6! All features listed here are additional! So why is it called Perl 9? Because the improvements are so huge that we just jumped 3 major version numbers!
Perl 9 is better...
...than other programming languages. Just click on the top menu to find out!
Perl 9 has improved old techniques
Here are the most exciting feature extendings of Perl 9 listed. Just click on the top menu on the desired feature and you will see examples and howtos!
Perl 9 Feature List
Here are the most exciting new features of Perl 9 listed. Just click on the top menu on the desired feature and you will see examples and howtos!
Built in artificial intelligence engine!
Perl 9 now has a built in AI engine! If you are too lazy to work, just tell Perl 9 to work for you.
# The AI will determine what needs to get done and will do it for you!
(my AI $ai .= new).work;
Perl 9 has now more core functions!
Perl 9 has now more functions in the core than PHP does! Because all PHP functions are in the Perl 9 core included! So everybody is switching to Perl 9!
Perl 9 is multi langual
In Perl 9, perl can now do everything! You can combine all syntaxes of your programming language within the same program! This is so awesome! If your friend keeps telling you that his programming language is kicking Perls ass, then he does not know about Perl 9!
#!/usr/bin/perl9
use VisualBasic.NET qw(Comments Declaration::Variable)
use TurboPascal qw(Operator::Assign)
use Java qw(Class::Math Loop::Foreach Class::System::out);
Rem Some cool stuff:
Dim double @Foo As Array;
@Foo[$_] := Math.sqrt($_) for 0 .. 10;
foreach (double $d : @Foo)
$d<-System.out.println;
Perl 9 contians new datatypes/contexes!
Perl now got some new data type and contexes:
Fuzzy Context ~
Everything is not sharp but fuzzy! Fuzzy does always something like the desired value! It is never exact!
my ~fuz; # Fuzzy type
use PHP qw(Function::echo);
# You don't know if its assigning list or scalar context!
my ~fuzzy = qw(Hello mister Edd);
echo<-~fuzzy; // Can print 'Hello' or can print '3'
my ~foo = 'Good morning';
echo<-~foo; # May print 'Good morning' or 'Bad afternoon'
Matrix Context []
No more limitations to list and scalar and void contexes!
my ([]matrix1,[]matrix2) = (
((1, 0, 0), (0, 1, 0), (0, 0, 1)),
((0, 1, 0), (0, 0, 1), (1, 0, 0)),
);
[]matrix1 += []matrix2; # Will add matrix2 to matrix1!
[]matrix1.say; # Will print ((1, 1, 0), (0, 1, 1), (1, 0, 1))
If you want to do multi dimensional matrices then you can do:
my [][]matrix =
(((1, 0, 0), (0, 1, 0), (0, 0, 1)),
((0, 1, 0), (0, 0, 1), (1, 0, 0)),
((0, 1, 0), (0, 0, 1), (1, 0, 0)));
erl 9 has a random operator
You probably know that Perl supports a lot of different operators. If you don't know which operator to use at the moment then just use the random operator (}}}}@.@{{{{).
# Does something randomly:
$foo (}}}}@.@{{{{) $bar;