���Ƥ�¥������Ȥ����Ǥʤ�����ϳΤ��ˤ���褦�˴����Ƥ��롣

�������ϥץ�����ޤ������פȤ�������� - kwatch������
�ϤƤʥ֥å��ޡ��� - novtan�Υ֥å��ޡ��� / 2008ǯ04��28��
���Ƥϥץ�����ޤ������Ǥ��äƤ�������ε�ǽ�˵��ƤϤ����ʤ���
�������ϥץ�����ޤ������פȤ�������� - kwatch������
�㤨�С�������ץȸ���Ǽ��Τ褦�� Hash �� Dict ��񤤤��Ȥ��롣
data = [
  {'name'=>'Foo', 'age'=>20, 'email'=>'[email protected]'},
  {'name'=>'Bar', 'age'=>21, 'email'=>'[email protected]'},
  {'name'=>'Baz', 'age'=>22, 'email'=>'[email protected]'},
]
�⤷�����ߤƲ��ⴶ���ʤ��ΤǤ���С�������ץȸ��첰�Ȥ����� Java ����Ф����ȤϤǤ��ʤ���

�����Ǥ��ʤ��ϲ����򴶤���

�����ơ�����ʤդ��˽񤱤ʤ����������Ȱ��٤ϻפ��Ϥ�����
data = %h{
  ['name', 'age', 'email'],
  ['Foo',   20,   '[email protected]'],
  ['Bar',   21,   '[email protected]'],
  ['Baz',   22,   '[email protected]'],
}

�Ȥ�ꤿ���ʤä�ŵ��Ū��LL�ץ�����ޡ��ϡ�����ʴ����Ǻ�Ȥ��롣

  1. �Ȥꤢ�����ǽ���̤�񤯡�
  2. �ʤˤ��򴶤��롣
  3. �ʲ��Τ褦�˽񤤤Ƥߤ롣���Ȥ���perl�ʤ餳��ʴ�����
    my $data = [ map { {name=>$_->[0],age=>$_->[1],email=>$_->[2]} }
      ['Foo',   20,   '[email protected]'],
      ['Bar',   21,   '[email protected]'],
      ['Baz',   22,   '[email protected]'],
    ];
    
  4. �ǡ��¹Ԥ��Ƥߤ���
  5. �ǡ��ޤ���­���Ԥ�������ˤ����äƤߤ롣
    sub str2data{
      my ($keys, $str) = @_;
      my @result;
      for my $line (split /\n/, $str){
        next if $line =~ /^$/;
        my %hash;
        my @fields = split /\s+/, $line;
        $hash{$_} = shift @fields for (@$keys);
        push @result, \%hash;
      }
      \@result;
    };
    
    my $data = str2data([qw/name age email/], <<"EOT");
    Foo 20 [email protected]
    Bar 21 [email protected]
    Baz 22 [email protected]
    EOT
    
  6. �ޤ��¹Ԥ��Ƥߤ���
  7. ������������ʤ���OK�Ȥ����Ȥ����ǥ�꡼����

�����ǻ䤬���������Τϡ�id:kwatch�����Ƥ���­��ʤ����Ȥ������ȤǤϤ������ʤ���

�䤬���������Τϡ�LL�β���Lightweight���Ȥ������Ȥ���

�ץ�����ޡ��ϡ�0���ʳ��Ǥ�3���ʳ��Ǥ�6���ʳ��Ǥ�֤Ǥ����פȸ���ĥ�뤳�Ȥ�����롣�ʤ��ʤ顢���ư�����顣LL�Ǥʤ��Ƥ�Ʊ�ͤΥ��ƥåפ�Ƨ�ळ�Ȥ��Բ�ǽ�ǤϤʤ��������ƥåפȥ��ƥåפδ֤ο�����Υ�Ϥ��ä��礭����������0����6�˰�­���Ӥ˹Ԥ����Ȥ��뤫��0�Τޤ�����뤫�Τɤ��餫�ˤʤ꤬������

LL��Lightweight�ʤΤϡ������鿬���Ǥ��롣���Ĥ��ڤ����顢�פ�Ω�ä�����ľ���롣���η�̤򤹤��˳�ǧ�Ǥ��롣��ǧ�Ǥ��뤫���꡼���Ǥ��롣¾�Ԥ⤹���˲����Ƥ�פ�Ω�Ĥ����פ�Ω�ä��餹����ź��Ǥ��롣

LL�Dz����褤�����Ȥ����С��֤���ǰ������夬��פȤ����ִ֤��������Ǥʤ���Τ���������Ȥ������ȤʤΤ����֥��줬�񤤤��ץ�����ब������ư�����פȼ´��Ǥ���ִ֤����ܤˤ�ʤ�Τ���

���Ƥʥץ�����ޤνŤ�����夲�뤿��ˤϡ��ץ�����ߥ󥰸���ο��Ϸڤ���зڤ��ۤɤ����Τ���

Dan the Lightweight Programmer