perl å§ãã¾ãã
Plagger ã¨ãã RSS ãè²ã
å¼ã£ãããããã¼ã«ã使ãããã¦ãã§ã欲ãããã©ã°ã¤ã³ãåå¨ãã¦ãªããããªã®ã§ãã£ããã ãèªåã§æ¸ããã㨠perl ãå§ãã¾ããã
Plagger ã®çºã ããªã®ã§è¥å¹²é£ãã¿ã¤ãã«ãªæ°ãããªãã§ããªãã®ã§ããæ°ã«ããªãã
å¦ã¶ã®ã«å©ç¨ãããµã¤ã/ãã¼ã¸
1. Perlå
¥é: http://www.perlplus.jp/perl/
2. 2æéåã§å¦ã¶Perl: http://qntm.org/files/perl/perl_jp.html
perl åå¦è ã®èªåã¨ãã¦ã¯åãããããæ¸ãã¦ãã£ã¦å©ããã¾ããã
â¦â¦ã§ãããã ãã ã¨ä½ãã«ãå³æ°ãªãéããã®ã§ãä¸è¨ã®äºã¤ãèªã㧠perl ã«ã¤ãã¦èå³æ·±ã/æå¤ã /çå¦ãª/é¢ç½ãã¨æã£ãç¹ãããã¤ããã£ãã®ã§æ¸ãã¦ã¿ã¾ãã
ãªã¹ããå¹³å¦åããã
perl ã§ã¯äºæ¬¡å ã«æ¸ããã¨ãã¦ããªã¹ããå¹³ãã«ããã¾ãã
( (1,2,3), (4,5,6), )
ãã®ãªã¹ãã¯
(1,2,3,4,5,6)
ã«ç´ããã¾ãã
ãããªé¢¨ã«ããããã©ããã£ã¦æ§é çãªå¤æ°ãä½ãã®ï¼ ã¨æã£ããããæ¹ã¯ã¡ããã¨ããã¾ããã
ããã¯æ¬¡ã®é
ç®ã«æ¹ãã¦ã
å¤æ°
perl ã®æ ¼ç´ã§ããå¤æ°ã®æ§é
å¤æ°
â ã¹ã«ã©($)
ï½ãâ æ°å
ï½ãâ æå
ï½ãâ ãªãã¡ã¬ã³ã¹*
â é
å(@)
â ããã·ã¥(%)
ãã®æ±ãåã®å°ãªãã§å¤§ä¸å¤«ãªã®ããªãã¨æã£ã¦ãã¾ãã®ã§ãã perler ããã®ã¾ã¾ã«ãã¦ããã®ã§å¤§ä¸å¤«ãªãã§ãããã
å¤æ°ã¯ããããã¹ã«ã©å¤ãé åãããã·ã¥ã®ä¸ã¤ããããããããå¥ã®æ¥é å($, @, %)ãä»ãã¦æ±ãã¾ãã
$scalar = 1; @array = (1,2,3,4,5); %hash = (key => "value");
ããã§é¢ç½ãäºã«ãæ¥é åãéãã°ååã®å¤æ°ãå¥ç©ã¨ãã¦æ±ãã¾ãã
ãªã®ã§ã
$a = 1; @a = (10); %a = {0 => 100};
ã¨ãã£ã¦ãæããã¾ããï¼å¥ã®èª°ãã«ã¯æãããããç¥ãã¾ãããï¼ã
ãªã¹ãã¯å¹³å¦åããã¦ãã¾ãã®ã§æ§é çãªå¤ãæã¦ãªããªã£ã¦ãã¾ãã¾ãããããã§åºã¦ããã®ããªãã¡ã¬ã³ã¹ã§ãã
ãªãã¡ã¬ã³ã¹ãç¨ããã¨å¤æ°ãåç
§ããå¤æ°ãä½æã§ãã¾ãã
\ ãå¤æ°åã«ç½®ãã¦ãªãã¡ã¬ã³ã¹ãå¾ããã¾ãã
@array = (1,2,3); $a = \@array; $b = @{$a}[0]; # ãªãã¡ã¬ã³ã¹å ã®é åã®å é ã $b ã«ä»£å ¥ãã¾ã(ããã§ã¯1ãä»£å ¥ããã¾ã)
äºæ¬¡å
é
åã¯ãã®é
åã®ãªãã¡ã¬ã³ã¹ãé
åã«ããã¨ä½ãã¾ãã
(ãªãã¡ã¬ã³ã¹, ãªãã¡ã¬ã³ã¹, ãªãã¡ã¬ã³ã¹, ...)
ã¨ããããã«ã
å¤æ°ã®æ¥é åãååã®å¤æ°ããæ§é çãªå¤æ°ã®ä½ãæ¹ãã©ããé©ãã§ããã
æ»ãå¤
perl ã§ã®æ»ãå¤ã¯ return ã®å¤ãæå¾ã®å¤ã使ç¨ããã
ãµãã«ã¼ãã³ã®å®ç¾©ã¯
sub name { ... }
ãªã®ã§ããã¨ãã°
sub hoge { 1 + 2; }
ãã®ä¸ã® 1 + 2 ã¨ããå¼ã®è¨ç®çµæãæå¾å¤ã®ããããããé¢æ°ã®æ»ãå¤ã«ãªãã¾ãã
ãã¡ããä»ã®è¨èªã®ããã«
return å¤;
ã使ãã°å¥½ããªå ´æã§æ»ãå¤ãè¿ãã¾ãã
return ç¡ãã«æ»ãå¤ã®æå³ãæãããã¨ããã®ã¯ã次ã®é ç®ã® do ãããã¯ã®ãããªã®ãã®ã«ã¯å¼·ãå³æ¹ã ãªã¨æãã¾ããã
do ãããã¯
ç¡åé¢æ°ã®å¼ã³åºãã®ãããªãã¨ï¼ããã¨ããã®ãã®ï¼ï¼ãã§ããã
do ãããã¯ã¯
do { ... }
ã¨æ¸ãã¨ã ... ã®ä¸èº«ãå®è¡ããçµæãè¿ãã¾ãã
print do {my $a = 1 + 2; $a;}
å°ããªãããã¯ã§ãã¼ã«ã«å¤æ°ã使ãã¦å¤ãè¿ãã¦ç¾¨ã¾ããã
ããã©ã«ãã®å¤æ°ã®çç¥
ããã©ã«ãã®å¤æ°ã¨ããã®çç¥ã¨ããã®ããã便å©ãããªã®ã§ããæ±ãã®ã¯é£ãããã§ãã
foreach ãä¾ã«ä½¿ãã¾ãã
ãã®ã¾ã¾ã® foreach ãããã§ãã
foreach my $i (1..10) { print $i; }
1以ä¸10以ä¸(1..10) ã®å¤ãé çªã« $i ã¸æ ¼ç´ã㦠print ã§åºåãã¦ãã¾ãã
ããã«ããã©ã«ãã®å¤æ°ã®çç¥ã使ãã¨ã
foreach (1..10) { print; }
ãããï¼ å¤æ°ã¯ã©ããã£ãï¼
ã¨è¨ã£ãæã§ããã
foreach ã¯æ ¼ç´å
ã®å¤æ°ãçç¥ãããã¨ããã©ã«ãã®å¤æ° $_ ã«å¤ãæ ¼ç´ãã¾ãã
ããã¦å¼æ°ã®çç¥ããã print ã¯ããã©ã«ãã®å¤æ°ãåºåãã¾ãã
ãã¾ã«ãããã§è¦ãããã¯ã³ã©ã¤ãã¼ perl ã¯ããããã使ã£ã¦ãã¾ããã
é¢æ°å¼ã³åºãã« () ãä»ããªãã¦ãå¼ã³åºãã
é¢æ°åãæ¸ãã¦ããã ãã§é¢æ°ãå¼ã³åºãã¦ããã¾ãã
sub f { print "Hello"; } &f; # & ãé¢æ°å¼ã³åºãã®æ示å
å¼æ°ããã£ã¦ãæ¬å¼§ãä»ããªãã¦è¯ããªãã¾ãã
sub add5 { $_[0] + 5; # $_[0] ãä¸ã¤ç®ã®å¼æ°ã表ãã¾ã } add5 10;
ä¸ã¤ç®ã®ä¾ã¯ & ãä»ããªãã¨é¢æ°ã®ãããã¿ã¤ããªã®ãå¼ã³åºããªã®ãåãããªããªãçº & ã使ãã¾ãã
äºã¤ç®ã®ã¯å¼æ°ã®åå¨ã§é¢æ°ã¨ããããã & ã使ããªãã¦ãå¼ã³åºãã¾ãã
è¯ãã§ãããããã
ã¢ã¸ã¥ã¼ã«ã¨ããã±ã¼ã¸ãåå空é
ã¢ã¸ã¥ã¼ã«ãä½ãéã«ã¯åå空éãèªåã§æ¸ãã¦ãããªããã°ãªãã¾ããã
æ¸ããªãã¨åå空éãªãã«å±éããã¾ãã
use Pen::Size;
ã¨ããã®ã¯èªã¿è¾¼ã¿ã®ãã¹ {$PERL5LIB}/Pen/Size.pm ã®æå®ã§ãã
ä¸è¨ã®éãã®åå空éã«ããã«ã¯è©²å½ãã¡ã¤ã«ã§
package Pen::Size;
ã¨æ¸ãå¿ è¦ãããã¾ãã
wantarray
ãµãã«ã¼ãã³ã¯æ»ãå¤ã«ãªã¹ããæ±ãããã¦ããã®ããããã¨ãã¹ã«ã©å¤ãæ±ãããã¦ããã®ããç¥ããã¨ãã§ããã
sub ot { return 1 if wantarray; # æ»ãå¤ããªã¹ãã®å ´å 10; } $a = ot; # $a ã¯é åã§ã¯ãªãã®ã§ 10 ãè¿ãã¾ã @b = ot; # @b ã¯é åãªã®ã§ (1) ãè¿ãã¾ã
é¢æ°ã®æ®»ã®é¨åã«æ¸ãã®ã§ã¯ãªãä¸ã«æ¸ãã¦ãã¾ãã¨ããã®ã¯æå¤ã§ããã
ãããã«
俺éã®åéºã¯ããããã ã