桜ヶ丘日記

技術メモとかとか

Config::Simpleの設定値にfalse/true(boolean値)って使えるの?

あらまし

もちろんPerlにはboolean型などない。
では、Config::Simpleの設定値としてはfalse/trueは使えるんだろうか?

実験

test.ini
[TEST]
HOGE1 = 1
HOGE0 = 0
HOGET = true
HOGEF = false
test.pl
#!/usr/bin/perl

use strict;
use Config::Simple;

my $cfg = new Config::Simple('test.ini');

my @hoge = ('TEST.HOGE0','TEST.HOGE1','TEST.HOGET','TEST.HOGEF');

foreach(@hoge){
        my $boolean = $cfg->param($_) ? 'true' : 'false';
        print qq(--- $_\n);
        print "num: ".($cfg->param($_)-0)."\n";
        print "char: ".$cfg->param($_)."\n";
        print qq(boolean: $boolean\n);
}

exit;
実行
$ perl test.pl
--- TEST.HOGE0
num: 0
char: 0
boolean: false
--- TEST.HOGE1
num: 1
char: 1
boolean: true
--- TEST.HOGET
num: 0
char: true
boolean: true
--- TEST.HOGEF
num: 0
char: false
boolean: true

結論

使えません。
やばり「false」と書いても「'false'という文字列」として解釈されるだけでした。