Okinawa.pm #6の発表資料です
υΩυΩPerlௐࠪஂPart1@AnaTofuZOkinawa.pm #6
View Slide
Θͨ͠Ͱ͢
• Ξφάϥ(@AnaTofuZ)• ླྀେ@ฒྻ৴པݚ(u͞Μͷޙഐ)• Perl͕͖ɹʢόΠτઌRuby)• झຯΫιϦϓΞφάϥͰ͢
͋Δ
;ͱࢥ͏
Perl1.0࣮ࡏͨ͠ͷ͔
Α͘Θ͔ΔPerl• Perl1.0 —ɹ͋ͬͨΒ͍͠• Perl2 - Տઌੜ͕ॳΊͯPerlͱग़ձͬͨ࣌• Perl3 ҧ͍͕͔ΒΜ• Perl4 Տઌੜ͕ຊΛग़ͨ͠• Perl5 զʑͷͬͯΔPerl
Α͘Θ͔ΔPerl• Perl1.0 —ɹ͋ͬͨΒ͍͠• Perl2 - Տઌੜ͕ॳΊͯPerlͱग़ձͬͨ࣌• Perl3 ҧ͍͕͔ΒΜ• Perl4 Տઌੜ͕ຊΛग़ͨ͠• Perl5 զʑͷͬͯΔPerlPerl1
Α͘Θ͔ΔPerl• Perl1.0 —ɹ͋ͬͨΒ͍͠• Perl2 - Տઌੜ͕ॳΊͯPerlͱग़ձͬͨ࣌• Perl3 ҧ͍͕͔ΒΜ• Perl4 ͋ͬͨΒ͍͠• Perl5 զʑͷͬͯΔPerlਆ
Perl 1.0 [ݕࡧ]
https://bitbucket.org/chastai/perl-1.0
ࠓͰಈ࡞
Perl5ͷσʔλܕ• εΧϥʔ• ྻ• ϋογϡ• ϦϑΝϨϯε
Perl1ͷσʔλܕ• εΧϥʔ• ྻ• ϋογϡ• ϦϑΝϨϯε
Perl1ͷσʔλܕ• εΧϥʔ• ྻ + ࿈ྻ
Perl1ͷσʔλܕ• String• Stringྻ + ࿈ྻ
Perl1Ͱͳ͍ͷ• ൣғԋࢉࢠ• foreach (ग़དྷͳ͘ͳ͍)• ଞϞδϡʔϧ• use• my,our,local…
Perl1Ͱ͋Δͷ• ஔ• ਖ਼نදݱ• Ϧετૢ࡞ (shift,unsift,pop,push)• @_• จࣈྻԋࢉࢠ• chop• each
αϒϧʔνϯ͋Δͧ!!sub MAX {$max = pop(@_);while ($foo = pop(@_)) {$max = $foo if $max < $foo;}$max;}...$bestday = do MAX($mon,$tue,$wed,$thu,$fri);
for loopग़དྷΔͧ!!#!/usr/bin/env perl@array = (1,2,3,4,5,6,7,8,9,10);for ( $i = 0; $i < 10; $i++){print $array[$i] ."\n";}
for loop (ޭ)#!/usr/bin/env perl@array = (1,2,3,4,5,6,7,8,9,10);for ( $i = 0; $i < 10; $i++){print $array["$i"] ."\n";}
ऑ• Ͳ͏γϯϘϧςʔϒϧʹΞΫηεͰ͖ͳ͍• αϒϧʔνϯʹྻΛͤͳ͍ (ग़དྷͳ͘ͳ͍)• ίϯύΠϧΤϥʔͷϝοηʔδ͕ແͯ͘ݫ͍͠
օ͞Μॻ͍ͯΈͨ͘ͳΓ·ͤΜ͔?
array_pop_shift.pl#!/usr/bin/env perl@names = ('Alice','Bob','Chris');print pop @names . "\n";print shift @names . "\n";
array_push_unshift.pl#!/usr/bin/env perl@names = ('Alice','Bob','Chris');push(@names,"Diana");unshift(@names,"Eve");for ($i = 0; $i < $#names+1; $i++){print $names["$i"]."\n";}
ͦΕͬΆ͘#!/usr/bin/env perl$my_profile['name'] = 'AnaTofuZ';$my_profile['age'] = 21;$my_profile['food'] = 'apple';print $my_profile["name"] . "\n";print $my_profile["age"] . "\n";print $my_profile["food"] . "\n";
!?appleappleapple
ਖ਼ղྫ#!/usr/bin/env perl$my_profile{'name'} = 'AnaTofuZ';$my_profile{'age'} = 21;$my_profile{'food'} = 'apple';print $my_profile{"name"} . "\n";print $my_profile{"age"} . "\n";print $my_profile{"food"} . "\n";
͜Εok#!/usr/bin/env perl($my_profile{'name'},$my_profile{'age'},$my_profile{'food'}) = ( 'AnaTofuZ',21,'apple');print $my_profile{"name"} . "\n";print $my_profile{"age"} . "\n";print $my_profile{"food"} . "\n";
• .n#!/usr/bin/env perl$my_profile{'name'} = 'AnaTofuZ';$my_profile{'age'} = 21;$my_profile{'food'} = 'apple';@keys = keys(my_profile);for ($i = 0; $i < $#keys+1 ; $i++){print $keys[$i] . "\n";}$my_profile{'age'} = "";if ( $my_profile{'age'} == ""){print "Age is not exists (͋Δ͚Ͳ)\n";} else {print "Age is exitst";}
hash_func.plͰൃ֮ͨ͠• delete͕ͳ͍• undef͕ͳ͍• existͳ͍• ϋογϡͰͳ͋͘͘·Ͱศརͳྻ (ͨͩ͠ྻͷshiftͳͲ͑ͳ͍)
Perl1.0ͷ࿈ྻ• ࿈ྻ͋͘·Ͱࢼݧతӡ༻ͩͬͨ• keys()ͳͲڥมͷऔಘͰར༻Λఆ• ͪͳΈʹιʔτॱࣙॻॱ
͍ۤ͠……
݁• Perl5を使おう