And your use of base is um, just wrong. 'use base' is meant to be set at a package level, and when you use it, you don't need the 'use *package*' line.
I know 'use base' does an implicit 'require', but sometimes ...
Is your cachedir set once per program, and you want to inherit from Cache::FileCache or Cache::NullCache based on it per program run, or can it change per instance of an object? I'm not going to guess at what you want there.
That part of the program is working fine, the 'getvar' function checks %ENV and a config-file for clues on what to use. The whole program just uses 1 instance of Fiets::Cache.
Thanks a lot, I totally missed the $self there!