Use MySQL or another database to store the recipes - while you could do it with a flatfile, a proper database will let you query against the data with arbitrary criteria at zero coding effort on your side.
castaway's
DBD::SQLite suggestion is an excellent one. May I suggest you use
Class::DBI to write the wrapper around the database;
its Perl Advent calendar entry should make it clear how easy it makes database work.
Makeshifts last the longest.