Debuginfo

思考とアウトプット

Mojolicious::Plugin::Configでファイルをどう読み込んでいるか調べてみた

Testでファイルをアプリケーションと分離して自前で読み込みたかったので調べてみた。下のようにperl6:Slurpとか使わずに関数を定義しているみたい。

sub slurp {
    my $path = shift;
    croak qq{Can't open file "$path": $!} unless open my $file, '<', $path; 
    my $content = '';
    while ($file->sysread(my $buffer, 131072, 0)) { $content .= $buffer }
        return $content;
    }
}

これをコピーしてevalすれば良し。

my $config = eval slurp("$Bin/../etc/knowhow3.conf");
sub slurp {
    my $path = shift; 
    open my $file, '<', $path;
    my $content = '';
    while ($file->sysread(my $buffer, 131072, 0)) { $content .= $buffer }
    return $content;
}

こんなファイルの読み込み方もあるのかと勉強になった。