File::HomeDir と Path::Class を使わずに愚直にかいてみたがあまり体感変わらず、ためしに YAML を YAML::Syck にしてみたら激早くなった。 #!/usr/bin/env perl use strict; use warnings; use YAML::Syck; my $path = $ARGV[0] or die; my $config = YAML::Syck::LoadFile( $ENV{HOME} . '/.svk/config' ); my $hash = $config->{checkout}{hash}; my @path = split '/', $path; my $svkinfo; do { $svkinfo = $hash->{ join '/', @path } } while !$svkinfo and pop @path;