use strict; use Benchmark qw(cmpthese); use blib; use MeCab; use Text::MeCab; my @fields = qw(id surface feature length); my $text = <new(); for(my $node = $mecab->parseToNode($text); $node; $node = $node->{next} ) { for my $field (@fields) { $node->{$field}; } } } sub text_mecab { my $mecab = Text::MeCab->new(); for(my $node = $mecab->parse($text); $node; $node = $node->next ) { for my $field (@fields) { $node->$field(); } } } cmpthese(100, { mecab => \&mecab, text_mecab => \&text_mecab, });