平成27年版(2015年) 広島市勢要覧 - Hiroshima · 注: 各区の人口・世帯数は、平成27年(2015年)12月31 ... 「夏の夜、祈りと平和の夕べ ...
2016年のPerl (Long version)
-
Upload
charsbar -
Category
Technology
-
view
486 -
download
0
Transcript of 2016年のPerl (Long version)
![Page 1: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/1.jpg)
2016 年の Perl(Long version)
Kenichi Ishigaki@charsbar
YAPC::Hokkaido 2016Dec 10, 2016
![Page 2: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/2.jpg)
Perl 5 in 2016
![Page 3: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/3.jpg)
Perl 5.24 was releasedSome of the notable changes:
• Hashbang redirection to Perl 6• autoderef was gone, postderef in• Unicode 8.0 support• Lexical $_ has been removed• /\C/ character class has been removed• Nested declarations are not disallowed• chdir('') no longer chdirs home• sysread()/syswrite() and :utf8 handles• Performance enhancements• Several security fixes
![Page 4: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/4.jpg)
Good old hashbang redirection
$ cat > hello.sh#!/bin/shecho "Hello, World";
$ perl hello.shHello, World
$ cat > hello.pl#!/usr/bin/env perl -wprint "Hello, World\n";
$ perl hello.plHello, World
![Page 5: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/5.jpg)
New hashbang redirection to Perl 6
$ cat > hello.p6#!/home/ishigaki/.rakudobrew/bin/perl6use v6;say "Hello, World";
$ perl5200 hello.p6Perl v6.0.0 required--this is only v5.20.0, stopped at hello.p6 line 2.BEGIN failed--compilation aborted at hello.p6 line 2.
$ perl5240 hello.p6Hello, World
![Page 6: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/6.jpg)
auto-dereferencing
• push $arrayref //= [], $scalar;• for (keys $hashref) { ... }
• introduced in 5.14• experimental since 5.18
![Page 7: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/7.jpg)
auto-dereferencing is gone
× push $blessed_arrayref, $scalar;× for (keys $blessed_hashref) { ... }× print "interpolates $arrayref";
![Page 8: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/8.jpg)
• push $arrayref->@*, $scalar;• push $blessed_arrayref->@*, $scalar;• print "interpolates $arrayref->@*";
• experimental since 5.20
postderef is no longer experimental
![Page 9: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/9.jpg)
postderef is no longer experimental
△ $undef->%* # warning× $maybe_undef->%* // {}○ ($maybe_undef // {})->%*× keys ($maybe_hashref // {})->%*○ keys (($maybe_hashref // {})->%*)○ keys %{$maybe_hashref // {}} # shorter...
![Page 10: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/10.jpg)
Unicode 8.0
plackup -MEncode -e 'use 5.024; sub {[ 200, ["Content-Type" => "text/plain"], [encode_utf8("\N{TACO} \N{POPCORN}")],]}'
![Page 11: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/11.jpg)
Unicode 8.0: Emoji Modifier
plackup -MEncode -e 'use 5.024; sub {[ 200, ["Content-Type" => "text/plain"], [encode_utf8( "\N{WOMAN}" . "\N{EMOJI MODIFIER FITZPATRICK TYPE-5}" . " " . "\N{MAN}" )],]}'
![Page 12: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/12.jpg)
Lexical $_ has been removed
• for my $_ (...) { ... }• implicitly used in given/when ( ~
5.16)• has been experimental since 5.18.• See perl5180delta for details
![Page 13: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/13.jpg)
/\C/ character class has been removed
my $c = "\N{U+3042}"; # あsay unpack "H*", $c; # e38182$c =~ /(.)/; say sprintf "%x", $1; # 3042$c =~ /(\C)/; say sprintf "%x", $1; # e3$c =~ s/(\C\C)\C/$1\x84/; say $c; # い
• deprecated since 5.20
![Page 14: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/14.jpg)
Nested declarations are not disallowed
my ($x, my($y)); # croaks now our (my $x); # ditto
![Page 15: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/15.jpg)
chdir(undef) no longer chdirs home
chdir(undef) or die "since 5.24";# but with no warning
![Page 16: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/16.jpg)
sysread()/syswrite() are deprecated on :utf8
handlesuse strict;use warnings;open my $fh, '<:encoding(cp932)', 'test.txt';
# works as you expectread($fh, my $buf, 3);
# doesn't respect the encoding; now warnssysread($fh, my $buf, 3);
![Page 17: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/17.jpg)
Performance enchancements• The overhead of scope entry/exit is
considerably reduced (subroutine calls, loops, and basic blocks become all faster)
• /fixed-string/ become much faster (in many cases)
• arithmetic become faster
![Page 18: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/18.jpg)
Security fixes• Perl 5.22 set a wrong umask before
calling mkstemp(3)• Out of boundary access in Win32 path
handling (since 5.005)• File::Spec::canonpath lost taint (since
5.20: PathTools-3.47)• Avoid accessing uninitialized memory in
win32 crypt()• On duplicate environment variables
from environ[]
![Page 19: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/19.jpg)
See perldelta (perl5240delta)
for other changes
![Page 20: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/20.jpg)
Some of the coming features/changes
(Perl 5.26)• Unescaped literal { in regexp is not allowed
(5.25.1)• Lexical subroutines are no longer experimental
(5.25.2)• ${^ENCODING} has been removed (5.25.3)• Unicode 9.0 support (5.25.3)• Indented Here-documents (5.25.7)• Build option to exclude . in @INC (5.25.7)
![Page 21: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/21.jpg)
Unescaped literal { in
regexp$foo =~ /\d{1,10}/; # ok$foo =~ /\d{1}/; # ok$foo =~ /something{}/; # now dies$foo =~ /something{/; # now dies$foo =~ /something[{]/; # ok$foo =~ /something\{/; # ok$foo =~ /{}/; # still ok
• deprecated since 5.16
![Page 22: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/22.jpg)
Lexical subroutines are no longer experimental
{ sub whatever { my $x = shift; my sub inner { ... do something with $x ... } inner(); }}perldoc perlsyn for details
• experimental since 5.18
![Page 23: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/23.jpg)
${^ENCODING} has been removed
× use encoding 'cp932';○ use encoding 'cp932', Filter => 1;
![Page 24: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/24.jpg)
Good old Here-documents
{ my ($key, $value) = qw/foo bar/; my $json_template = << "END";{"$key": "$value"}END}
![Page 25: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/25.jpg)
Indented Here-documents
{ my ($key, $value) = qw/foo bar/; my $json_template = <<~ "END"; {"$key": "$value"} END}
![Page 26: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/26.jpg)
Build option to exclude . in
@INC$ plenv install 5.25.7 -Ddefault_inc_excludes_dot
• Beware if you use inc::Module::Install, t:: for testing libraries, do "localfile.pl" for configuration, etc.
• This issue would probably be mitigated somehow (by toolchainers).
• Your system perl may have been built with the same option for security reasons.
• FindBin is always your friend.
![Page 27: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/27.jpg)
See perl525[1-9]delta for other
changes
![Page 28: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/28.jpg)
Changes in the Community
• Karen Pauley stepped down as TPF President
• Perl 5 Pumpking: Ricardo Signes to Sawyer X
• YAPC to The Perl Conferences2017.06.18-23 (Alexandria, Virginia, USA)2017.08.09-11 (Amsterdam, Netherlands)
![Page 29: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/29.jpg)
Other Perl Events
happened in 2016
• Various Perl Workshops(Dutch, German, French, Alpine, Barcelona, London, DC-Baltimore, etc)
• QA Hackathon in Rugby• meta::hack• Perl Dancer Conference 2016
![Page 30: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/30.jpg)
CPAN Status
• 12915 PAUSE IDs (JP: 601)• 34607 Distributions
As of Dec 10, 2016
![Page 31: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/31.jpg)
CPAN Status
As of Dec 10, 2016
Number of releasesYear Worldwide Japanese2012 22647 18582013 25760 32252014 27269 19372015 22999 11082016 18898 731
![Page 32: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/32.jpg)
CPAN Status
As of Dec 10, 2016
Number of released distributionsYear Worldwide Japanese
2012 6777 5392013 7442 8042014 7586 5662015 6823 4072016 5957 306
![Page 33: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/33.jpg)
CPAN Status
As of Dec 10, 2016
Number of new distributionsYear Worldwide Japanese2012 2947 (of
6777;43%)248 (of 539;46%)
2013 2836 (of 7442;38%)
420 (of 804;52%)
2014 2805 (of 7586;37%)
220 (of 566;39%)
2015 2249 (of 6823;33%)
123 (of 407;30%)
2016 2072 (of 5957;35%)
77 (of 306;25%)
![Page 34: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/34.jpg)
CPAN Status
As of Dec 10, 2016
Number of authors who releasedYear Worldwide Japanese
2012 1758 1232013 1803 1502014 1716 1302015 1553 1152016 1371 95
![Page 35: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/35.jpg)
CPAN Status
As of Dec 10, 2016
Number of authors who released something new
Year Worldwide Japanese2012 1047 (of
1758;60%)78 (of 123;63%)
2013 1012 (of 1803;56%)
113 (of 150;75%)
2014 898 (of 1716;52%)
78 (of 130;60%)
2015 734 (of 1553;47%)
66 (of 115;57%)
2016 608 (of 1371;44%)
38 (of 95;40%)
![Page 36: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/36.jpg)
CPAN Status
App:: (375), Locale::CLDR::Locales:: (196), Net:: (195), Dist::Zilla::Plugin:: (141),Test:: (129), Bencher:: (119), Acme:: (117),Mojolicious::Plugin:: (104), Data:: (104),WWW:: (101), Text:: (77), WebService:: (68),Dancer2:: (67), Alien:: (64), HTML:: (64),DBIx:: (60), Math:: (60), File:: (59), Log:: (59)...
Notable namespaces updated in 2016
![Page 37: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/37.jpg)
CPAN Status
Char:: (35), App:: (14), Test:: (13), Plack::Middleware:: (12), Acme:: (10), Data:: (8), WebService:: (8), Redis (7), HTML:: (7), Net:: (7), Mojolicious::Plugin:: (6),DBIx:: (5), WWW:: (5), Text:: (5), Perl:: (4), SQL::(4), Net::Azure:: (4), AnyEvent (4),Dist:: (4)...
Ditto by Japanese
![Page 38: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/38.jpg)
Perl 6 in 2016
![Page 39: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/39.jpg)
THE Christmas has come!
... as Larry announced last year.
![Page 40: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/40.jpg)
Now we have the Christmas
ROAST• Repository Of All Spec Tests• "6.c" branch/tag in perl6/roast• We also have Rakudo that doesn't
die by "use v6.c".
![Page 41: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/41.jpg)
$ perl6 -vThis is Rakudo version 2016.11 built on MoarVM version 2016.11implementing Perl 6.c.
• say $*PERL.name; # Perl 6 • say $*PERL.version; # v6.c• say $*PERL.compiler.name; # rakudo• say $*PERL.compiler.version; # v2016.11• say $*VM.name; # moar• say $*VM.version; # v2016.11
![Page 42: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/42.jpg)
Not everything is ready yet
"spectest" (made from roast) is fudged.
given $*DISTRO.name { when "macosx" {#?rakudo.jvm skip "file system events NYI? RT #124828" subtest &macosx, "does watch-path work on Mac OS X"; } default { pass "Nothing reliable to test yet"; }}perl6/roast/S17-supply/watch-path.t(for IO::Notification.watch-path)
![Page 43: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/43.jpg)
However, Rakudo is fairly STABLE
now... as long as you use the
tested features.
![Page 44: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/44.jpg)
README for ROAST 6.c says:
Any tests that contain a "use experimental" are not consideredpart of the specification, and their behavior is subject tochange. Anything not explicitly tested here is experimental.https://github.com/perl6/roast/blob/6.c/README#L8-L10
![Page 45: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/45.jpg)
See the ROAST 6.c when in
doubt• Design docs explain goals;
not the current status.• 6.c-errata
![Page 46: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/46.jpg)
Performance and Reliability
Among others, Jonathan Worthington...•completed his first 200-hours Perl 6 Performance and Reliability Grant•implemented heap snapshots in MoarVM•improved lower-level (ie. largely MoarVM) performance•fixed a number of memory leaks and concurrency bugs•This Grant has been extended for another 200 hours.
http://news.perlfoundation.org/2016/08/perl-6-performance-and-reliabi-1.html
![Page 47: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/47.jpg)
According to a benchmark:
https://twitter.com/zoffix/status/796810512986238978
![Page 48: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/48.jpg)
On other backends
![Page 49: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/49.jpg)
Rakudo on JVM
• not included in Rakudo Star distributions now
• much slower than Rakudo on MoarVM but improving
![Page 50: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/50.jpg)
Rakudo.js
• http://blogs.perl.org/users/pawel_murias/2016/10/update-on-rakudojs.html
• http://blogs.perl.org/users/pawel_murias/2016/10/rakudojs-update.html
• Work In Progress (P6 Grant)• ECMAScript 6
![Page 51: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/51.jpg)
Farewell to Parrot
• First Perl6 backend since 2001
• Related code was removed from nqp
https://p6weekly.wordpress.com/2016/08/01/2016-31-an-end-of-an-era/
![Page 52: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/52.jpg)
Release Utilities• Ticket Trakr• IRC release bot
• http://blogs.perl.org/users/zoffix_znet/2016/08/i-botched-a-perl-6-release-and-now-a-robot-is-taking-my-job.html
• https://github.com/rakudo/rakudo/blob/nom/docs/release_guide_automated.md
![Page 53: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/53.jpg)
TAP for Perl 6• Tests in ROAST are written
in Perl 6, but p5 Test::Harness is still used to run the tests.
• New TAP.pm6 has been written to replace it.
https://p6weekly.wordpress.com/2016/08/22/2016-34-a-quick-botch-from-cluj/
![Page 54: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/54.jpg)
Some of the (coming) features
Not only grammars and concurrency but also...• Unicode support, not just to
read/write• TWEAK (equiv to BUILD of p5
Moose)• lexical module loading
![Page 55: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/55.jpg)
Unicode support
say 「こんにちはこんにちは」 ; # 半角
「 」のみ
my $ 税率 = 1.08; ($ 金額 ×$ 税
率 ).say; say 100² ÷ ⅕; # 50000;say 100 ** 2 / unival("\x[2155]");
![Page 56: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/56.jpg)
TWEAK submethodConsider you want to set "id"
automatically.use v6.c;class Foo { has ($.x, $!id); submethod BUILD() { $!id = $!x * 2; # $!x is not set yet } method generated_id { $!id }}say Foo.new(x => 1).generated_id; # 0
![Page 57: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/57.jpg)
TWEAK submethodYou can write like this, but...
use v6.c;class Foo { has ($.x, $!id); submethod BUILD(:$!x) { $!id = $!x * 2; } method generated_id { $!id }}say Foo.new(x => 1).generated_id; # 2
![Page 58: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/58.jpg)
TWEAK submethoduse v6.c; # since 2016.11 (or v6.d when ready)
class Foo { has ($.x, $!id); submethod TWEAK() { # called after BUILDs $!id = $!x * 2; } method generated_id { $!id }}say Foo.new(x => 1).generated_id; # 2
![Page 59: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/59.jpg)
Lexical module loadnot merged yet; this will break
modules that depend on old, Perl5-like behavior.
# A.pm6class A {}
# B.pm6use A;class B {}
# test_lexical_module_load.pl6use B;A.new; # should die because A is not used here
![Page 60: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/60.jpg)
Perl 6 Ecosystem~750 modules as of 2016/12
https://modules.perl6.org/
![Page 61: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/61.jpg)
Perl 6 EcosystemDon't worry: you can use
numerous Perl5 modules via Inline::Perl5.use v6.c use Inline::Perl5;use DBI:from<Perl5>;
my $dbh = DBI.connect('dbi:Pg:database=test');my $products = $dbh.selectall_arrayref( 'select * from products', {Slice => {}});
![Page 62: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/62.jpg)
PSIXDISTSPerl5 toolchain ignores distribution under PAUSE_ID/Perl6/ directory.
http://cpan.metacpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
![Page 63: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/63.jpg)
Writing a Perl 6 module
$ panda install App::Mi6$ mi6 new Your::Great::Module
![Page 64: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/64.jpg)
Learning Perl 6• Perl 6 Advent Calendars
https://perl6advent.wordpress.com/See also tests under roast/integration/http://qiita.com/advent-calendar/2016/perl6http://qiita.com/advent-calendar/2015/perl6
• Perl 6 Introduction: http://ja.perl6intro.com• RosettaCode
https://rosettacode.org/wiki/Category:Perl_6• roast• perl6.org
![Page 65: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/65.jpg)
Perl 6 Books Planned/In-Progress
• Learning Perl 6 (brian d foy)https://www.kickstarter.com/projects/1422827986/learning-perl-6
• Perl 6 By Example (Moritz Lenz)https://perlgeek.de/blog-en/perl-6/2016-book.html
![Page 66: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/66.jpg)
Further Information• Weekly changes in and around Perl
6https://p6weekly.wordpress.com
• English videos about Perl 6 on YouTubehttp://bit.ly/perl6_english_video
• WEB+DB PRESS Vol.93 「 Perl 6 の歩き方」http://gihyo.jp/dev/serial/01/perl-hackers-hub/003901
• About the next version (6.d)https://github.com/perl6/specs/blob/master/v6d.pod https://github.com/rakudo/rakudo/blob/nom/docs/language_versions.md
![Page 67: 2016年のPerl (Long version)](https://reader035.fdocuments.in/reader035/viewer/2022062823/5872dbc21a28ab74188b7323/html5/thumbnails/67.jpg)
Thank you