YAPC::Asia::2008

����Ǥ�����ǤϤ���ޤ�����perl�ξ���äȴ�ñ����ˡ������ޤ���

�Ƹ���֤λ��Ȥ����Ϥ� - @author pyridoxin
sub swap {
    my ($x , $y) = @_;
    $$temp = $$y;
    $$y = $$x;
    $$x = $$temp
}
[codepad]
sub swap {
  my $tmp = $_[0];
  $_[0] = $_[1];
  $_[1] = $tmp;
}
my ($a, $b) = (1, 2);
print "\$a = $a, \$b = $b\n";
swap($a, $b);
print "\$a = $a, \$b = $b\n";

����ϡ�Reference��¸�ߤ��ʤ��ä�Perl 4��������λ��ͤǤ���

�������

sub swap($$){
  ($_[1], $_[0]) = ($_[0], $_[1]);
}

�Ȥ��Ƥ⤦�ޤ��Ԥ��ޤ���

Perl 5�ʹߤǤϡ�sub�ν����Ȥ���

sub meth{
  my $self = shift; # shift @_ ��ά
  # ....
}

�Ȥ�

sub func{
  my ($a, $b, $c) = @_;
  # ....
}

�Ȥ��Ȥ������ˡ��ǽ�˥쥭�������ѿ���@_�����Ƥ򥳥ԡ�����Τ�����Ū�Ǥ�������������Ѱդ˻��ȸ���񤭴����ʤ�����ι��פȤ�����ޤ���

�ʤ���foreach��map�ʤɤˤ�����$_�⻲�ȤǤ���

[codepad]
my @a = (0..10);
print join(', ', @a), "\n";
$_ *= 2 for @a;
print join(', ', @a), "\n";
map { $_ + } @a;
print join(', ', @a), "\n";

����ޤ�Perl 5�Ǥϡ�

for my $item (@array){
  # ....
}

�Ȥ������������ݡ��Ȥ��졢���Ѱդ˻��ȸ���񤭴������ǽ�����㤯���Ƥ��ޤ���

���졢�Τä��Ȥ��ˤϷ빽����äȤ����ΤǤ��������������������Ȥ��Ǻ�Ŭ������������ޤ���

404 Blog Not Found:perl - to goto or not to goto, that's the continuation
sub _fib_g{
    my ($n, $f1, $f2) = @_;
    return $f2 if $n == 0;
    # _fib_g($n - 1, $f2, $f1 + $f2)
    @_ = ($n - 1, $f2, $f1 + $f2);
    goto  &_fib_g;
}
sub fib_g{ _fib_g(shift, 0, 1) };

�ʥ�ȥ������̤ϻȤ��褦....

Dan the Refer(ent|rer)