sub databases { my ( $self ) = @_; return \@ARGV if @ARGV; my $dirs = $self->{dirs_sqlite}; my $cache_key = $self->{plugin} . '_' . join ' ', @$dirs; my $ax = App::DBBrowser::Auxil->new(); my $db_cache = $ax->read_json( $self->{db_cache_file} ); if ( $self->{sqlite_search} ) { delete $db_cache->{$cache_key}; } my $databases = []; if ( ! defined $db_cache->{$cache_key} ) { print 'Searching...' . "\n"; for my $dir ( @$dirs ) { File::Find::find( ... push @$databases, ... ... ); } print 'Ended searching' . "\n"; $db_cache->{$cache_key} = $databases; $ax->write_json( $self->{db_cache_file}, $db_cache ); } else { $databases = $db_cache->{$cache_key}; } return $databases; }