Slide 1

Slide 1 text

postfix dereference పఈ߈ུ @mackee_w a.k.a macopy Gotanda.pm #16

Slide 2

Slide 2 text

୭ˠ • twitter: @mackee_w • GitHub: mackee • kuiperbelt/kuiperbelt : WebSocketศར܅ • ࠷ۙPerl Hackers Hubʹςετͱ͔ͷهࣄΛॻ ͍ͨ

Slide 3

Slide 3 text

postfix dereference ͬͯԿ

Slide 4

Slide 4 text

postfix dereference $hashref->%* $arrayref->@*

Slide 5

Slide 5 text

postfix dereference $hashref->%* $arrayref->@*

Slide 6

Slide 6 text

postfix dereference $hashref->%* $arrayref->@*

Slide 7

Slide 7 text

ղઆ

Slide 8

Slide 8 text

postfix dereference %{$hashref} || $hashref->%*

Slide 9

Slide 9 text

postfix dereference @{$arrayref} || $arrayref->@*

Slide 10

Slide 10 text

postfix ɹ= έπʹͭ͘ dereference ɹ= σϦϑΝϨϯε ུ: postderef

Slide 11

Slide 11 text

֗ͷ੠ ಡΊͳ͍ ͜Ε͸ศརʂ

Slide 12

Slide 12 text

ϝϦο τ

Slide 13

Slide 13 text

ϝϦοτ • ߦͬͯʙฦͬͯͬͯͳΒͳ͍ %{$aaa->{bbb}} $aaa->{bbb}->%* 1 2 3 4 5 6 7 1 2 3 4 5 6

Slide 14

Slide 14 text

σϝϦοτ

Slide 15

Slide 15 text

……ͳΜͰ ه߸૿΍ͪ͠Όͬͨͷʁ

Slide 16

Slide 16 text

͓٬༷ɺ ه߸͸૿΍͓ͯ͠Γ·ͤΜɺ ه߸ͷ૊Έ߹ΘͤΛ૿΍ͨ͠ ͚ͩͳͷͰ͢……

Slide 17

Slide 17 text

૊Έ߹Θͤ……

Slide 18

Slide 18 text

୭͕ * ͚ͩͩͱݴͬͨ

Slide 19

Slide 19 text

hash slicing my $hashref = { k1 => "v1", k2 => "v2", k3 => "v3" }; # ී௨ͷσϦϑΝϨϯε͔ΒͷϋογϡεϥΠε my ($v1, $v3) = @{$hashref}{qw/k1 k3/}; # postderefͰϋογϡεϥΠε my ($v1, $v3) = $hashref->@{qw/k1 k3/};

Slide 20

Slide 20 text

࣮࣭JSͷobject destructuringͰ͸ʁʁʁ ※ӈลʹ΋ॻ͔ͳ͍ͱ͍͚ͳ͍ͷͰҧ͍·͢ https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

Slide 21

Slide 21 text

·ͱΊ • ʢ໨ͱख͕֮͑Ε͹ʣศར • *͚ͩͰ͸ͳ͍ɻΉ͠ΖͦΕҎ֎͕ศར • v5.24͔Βexperimental֎Εͨɻ࢖͑· ͢ʂʂʂʂ • ࠓճͷίʔυ͸શ෦use v5.24.0;ͯ͠·͢

Slide 22

Slide 22 text

http://perldoc.jp/docs/perl/5.24.0/perl5240delta.pod

Slide 23

Slide 23 text

postderef_qqͬͯͳʹ

Slide 24

Slide 24 text

postderef_qq my $hashref = { k1 => “v1", k2 => "v2", k3 => "v3" }; print "[$hashref->@{qw/k1 k3/}]\n"; # => [v1 v3]

Slide 25

Slide 25 text

ͳΔ΄Ͳͳʁ

Slide 26

Slide 26 text

csvΈ͍ͨʹग़ͨ͠Γ my @columns = qw/c1 c2 c3/; my $data = [ { c1 => "aa", c2 => "bb", c3 => "cc" }, { c1 => "dd", c2 => "ee", c3 => "ff" }, { c1 => "gg", c2 => "hh", c3 => "ii" }, ]; $" = ","; print "@columns\n"; print "$_->@{@columns}\n" for @$data;

Slide 27

Slide 27 text

csvΈ͍ͨʹग़ͨ͠Γ $ perl postderef.pl c1,c2,c3 aa,bb,cc dd,ee,ff gg,hh,ii

Slide 28

Slide 28 text

Ͳ͏Αʁʁʁʁ

Slide 29

Slide 29 text

ײ૝ • ϫϯϥΠφʔͱ͔Ͱศརͦ͏ • jqͷ୅ΘΓʹ࢖͏ͱ͔ • ͱ͸͍͑·ͣv5.24ʹ্͛Δͱ͜Ζ͔Β……