Flat files are OK for small jobs.
Up the scale comes the DB_File and then a database. DB_File is a nice way or holding data you want to use from run to run.
To find where your files are use File::Find
Hope this helps
File::Find isn't a realistic solution. Users probably won't accept the delay of searching the filesystem for the data file(s) each time the package is used.