Closed teolemon closed 2 years ago
[ ] [35mcgi/suggest.pl: Match variable used at line 61, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/add_agribalyse_food_codes_to_taxonomy.pl: Close filehandles as soon as possible after opening them at line 33, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/add_agribalyse_food_codes_to_taxonomy.pl: Use "<>" or "
[ ] [35mscripts/add_descriptions_to_taxonomy_from_eu_translations.pl: Close filehandles as soon as possible after opening them at line 49, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/add_descriptions_to_taxonomy_from_eu_translations.pl: Use "<>" or "
[ ] [35mscripts/add_efsa_evaluations_to_additives_taxonomy.pl: Close filehandles as soon as possible after opening them at line 34, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/add_efsa_evaluations_to_additives_taxonomy.pl: Close filehandles as soon as possible after opening them at line 67, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/add_efsa_evaluations_to_additives_taxonomy.pl: Match variable used at line 91, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/add_efsa_evaluations_to_additives_taxonomy.pl: Use "<>" or "
[ ] [35mscripts/add_efsa_evaluations_to_additives_taxonomy.pl: Match variable used at line 156, column 21. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/aggregate_ingredients.pl: Use "<>" or "
[ ] [35mscripts/authorized_additives.pl: Close filehandles as soon as possible after opening them at line 71, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/build_countries_taxonomy_from_wikidata.pl: Close filehandles as soon as possible after opening them at line 142, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/build_languages_taxonomy_from_wikidata.pl: Close filehandles as soon as possible after opening them at line 302, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/build_tags_taxonomy.pl: Close filehandles as soon as possible after opening them at line 56, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/check_additivestaxonomy.pl: Always unpack @ first at line 9, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mscripts/check_lang_pm.pl: Close filehandles as soon as possible after opening them at line 32, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/check_lang_pm.pl: Match variable used at line 55, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/check_lang_pm.pl: Match variable used at line 60, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/check_lang_pm.pl: Match variable used at line 61, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/checkbot.pl: Subroutine "send_msg" does not end with "return" at line 104, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mscripts/checkmongodb.pl: Subroutine "send_msg" does not end with "return" at line 15, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mscripts/create_wikipedia_properties_for_taxonomy.pl: Close filehandles as soon as possible after opening them at line 34, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/create_wikipedia_properties_for_taxonomy.pl: Use "<>" or "
[ ] [35mscripts/delete_old_cropped_images.pl: Code before warnings are enabled at line 27, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/delete_old_cropped_images.pl: Subroutine "find_products" does not end with "return" at line 34, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mscripts/export_and_import_to_public_database.pl: Match variable used at line 81, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/export_csv_file.pl: Code before warnings are enabled at line 38, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/exportdatabase.pl: Always unpack @ first at line 84, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mscripts/export_database.pl: Close filehandles as soon as possible after opening them at line 136, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/export_database.pl: Close filehandles as soon as possible after opening them at line 137, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/export_database.pl: Close filehandles as soon as possible after opening them at line 138, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/export_database.pl: Match variable used at line 194, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/export_database.pl: Close filehandles as soon as possible after opening them at line 435, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/export_nutrients_taxonomy.pl: Code before warnings are enabled at line 28, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/extract_additives.pl: Close filehandles as soon as possible after opening them at line 46, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/extract_additives.pl: Use "<>" or "
[ ] [35mscripts/extract_additives.pl: Magic variable "$a" should be assigned as "local" at line 132, column 22. See pages 81,82 of PBP. (Severity: 4 )
[ ] [35mscripts/extract_individual_ingredients.pl: Use "<>" or "
[ ] [35mscripts/extract_ingredients_test_set.pl: Close filehandles as soon as possible after opening them at line 114, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/extract_nutrition_test_set.pl: Close filehandles as soon as possible after opening them at line 114, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_obf_inci_functions_taxonomy_from_cosing.pl: Close filehandles as soon as possible after opening them at line 123, column 5. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_obf_ingredients_taxonomy_from_cosing.pl: Close filehandles as soon as possible after opening them at line 47, column 5. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_obf_ingredients_taxonomy_from_cosing.pl: Close filehandles as soon as possible after opening them at line 92, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 136, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 140, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 144, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 148, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 152, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 156, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sucres.pl: Match variable used at line 160, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 149, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 153, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 157, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 161, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 165, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 169, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_sugar.pl: Match variable used at line 173, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_top_tags_per_country.pl: Close filehandles as soon as possible after opening them at line 367, column 6. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_top_tags_per_country.pl: Match variable used at line 371, column 54. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_top_tags_per_country.pl: Match variable used at line 372, column 60. See page 82 of PBP. (Severity: 4 )
[x] [35mscripts/gen_top_tags_per_country.pl: Negative array index should be used at line 473, column 26. See page 88 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_top_tags_per_country.pl: Close filehandles as soon as possible after opening them at line 570, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/gen_top_tags_per_country.pl: Close filehandles as soon as possible after opening them at line 623, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/get_blog_updates.pl: Close filehandles as soon as possible after opening them at line 47, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/get_blog_updates.pl: Close filehandles as soon as possible after opening them at line 48, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/import_csv_file.pl: Code before warnings are enabled at line 52, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/import_fleurymichon.pl: Code before warnings are enabled at line 28, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/import_fleurymichon.pl: Match variable used at line 663, column 33. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/import_fleurymichon.pl: Match variable used at line 838, column 16. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/import_systemeu.pl: Code before warnings are enabled at line 28, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/import_systemeu.pl: Close filehandles as soon as possible after opening them at line 92, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/import_systemeu.pl: Close filehandles as soon as possible after opening them at line 366, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/import_systemeu.pl: Close filehandles as soon as possible after opening them at line 387, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/import_systemeu.pl: Match variable used at line 828, column 18. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/import_systemeu.pl: Match variable used at line 1105, column 32. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/merge_additives_lists.pl: Close filehandles as soon as possible after opening them at line 30, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/merge_additives_lists.pl: Close filehandles as soon as possible after opening them at line 47, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/merge_additives_lists.pl: Close filehandles as soon as possible after opening them at line 105, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/minion_export_test.pl: Code before warnings are enabled at line 31, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/minion_import_test.pl: Code before warnings are enabled at line 31, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/minion_producers.pl: Code before warnings are enabled at line 31, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/minion_producers_test.pl: Code before warnings are enabled at line 31, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/print_all_translations.pl: Code before warnings are enabled at line 29, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/run_cloud_vision_ocr.pl: Code before warnings are enabled at line 26, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/run_cloud_vision_ocr.pl: Close filehandles as soon as possible after opening them at line 68, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/scanbot.pl: Use "<>" or "
[ ] [35mscripts/scanbot.pl: Close filehandles as soon as possible after opening them at line 105, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/scanbot.pl: Close filehandles as soon as possible after opening them at line 106, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/scanbot.pl: Match variable used at line 270, column 30. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/sort_languages_in_taxonomy.pl: Use "<>" or "
[ ] [35mscripts/sto_tojson.pl: Always unpack @ first at line 32, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mscripts/sto_toxml.pl: Always unpack @ first at line 29, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mscripts/tag_stores_magasins_u.pl: Code before warnings are enabled at line 28, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/tag_stores_magasins_u.pl: Close filehandles as soon as possible after opening them at line 118, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/tag_stores_magasins_u.pl: Match variable used at line 225, column 33. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/test_extract_ingredients_from_text.pl: Close filehandles as soon as possible after opening them at line 83, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/test_geoip.pl: Use "<>" or "
[ ] [35mscripts/test_normalize_packaging_codes.pl: Use "<>" or "
[ ] [35mscripts/test_spellchecker.pl: Use "<>" or "
[ ] [35mscripts/test_text_fuzzy.pl: Code before warnings are enabled at line 7, column 1. See page 431 of PBP. (Severity: 4 )
[ ] [35mscripts/translate_taxonomy_with_eu_translations.pl: Close filehandles as soon as possible after opening them at line 48, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/translate_taxonomy_with_eu_translations.pl: Use "<>" or "
[ ] [35mscripts/update_all_products.pl: Match variable used at line 229, column 37. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products.pl: Match variable used at line 791, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products.pl: Match variable used at line 794, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products.pl: Match variable used at line 799, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products.pl: Match variable used at line 802, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products.pl: Match variable used at line 827, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products.pl: Match variable used at line 830, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_all_products_from_dir_in_mongodb.pl: Subroutine "find_products" does not end with "return" at line 66, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mscripts/update_packager_codes.pl: Close filehandles as soon as possible after opening them at line 113, column 4. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/update_packager_codes_fsa_ratings.pl: Close filehandles as soon as possible after opening them at line 46, column 1. See page 209 of PBP. (Severity: 4 )
[ ] [35mscripts/update_packager_codes_fsa_ratings.pl: Match variable used at line 51, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_packager_codes_fsa_ratings.pl: Match variable used at line 52, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mscripts/update_top_translators.pl: Subroutine "download_export" does not end with "return" at line 69, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Cache.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Cache.pm: Subroutine "new" called using indirect syntax at line 50, column 9. See page 349 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Cache.pm: Comma used to separate statements at line 51, column 2. See pages 68,71 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Config2_sample.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Config_obf.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Config_off.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Config_opf.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Config_opff.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Data.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/DataQuality.pm: Symbols are exported by default at line 79, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/DataQualityCommon.pm: Symbols are exported by default at line 43, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_bugs" does not end with "return" at line 64, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_bug_missing_or_unknown_main_language" does not end with "return" at line 83, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_bug_code_missing" does not end with "return" at line 99, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_bug_created_t_missing" does not end with "return" at line 115, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_codes" does not end with "return" at line 134, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_code_gs1_prefixes" does not end with "return" at line 142, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityCommon.pm: Subroutine "check_quality_common" does not end with "return" at line 181, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/DataQualityFood.pm: Symbols are exported by default at line 46, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "detect_categories" does not end with "return" at line 386, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_nutrition_grades" does not end with "return" at line 437, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_carbon_footprint" does not end with "return" at line 470, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_nutrition_data" does not end with "return" at line 505, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Mixed high and low-precedence booleans at line 637, column 30. See page 70 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "compare_nutrition_facts_with_products_from_same_category" does not end with "return" at line 651, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_ingredients" does not end with "return" at line 728, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_quantity" does not end with "return" at line 899, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_categories" does not end with "return" at line 961, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Mixed high and low-precedence booleans at line 966, column 7. See page 70 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Mixed high and low-precedence booleans at line 975, column 6. See page 70 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "compare_nutriscore_with_value_from_producer" does not end with "return" at line 990, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_ingredients_percent_analysis" does not end with "return" at line 1022, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/DataQualityFood.pm: Subroutine "check_quality_food" does not end with "return" at line 1044, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Export.pm: Symbols are exported by default at line 85, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Export.pm: Subroutine "export_csv" does not end with "return" at line 164, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Export.pm: Match variable used at line 305, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Export.pm: Match variable used at line 381, column 24. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Export.pm: Match variable used at line 391, column 17. See page 82 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Food.pm: Symbols are exported by default at line 43, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 181, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 184, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 187, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 190, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "normalize_nutriment_value_and_modifier" does not end with "return" at line 212, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "assign_nid_modifier_value_and_unit" does not end with "return" at line 283, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Always unpack @_ first at line 330, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 3984, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 4064, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "special_process_product" does not end with "return" at line 4299, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "fix_salt_equivalent" does not end with "return" at line 4528, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "compute_nutrition_score" does not end with "return" at line 4600, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "compute_serving_size_data" does not end with "return" at line 4846, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "compute_carbon_footprint_infocard" does not end with "return" at line 5021, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "compute_unknown_nutrients" does not end with "return" at line 5117, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "compute_nutrient_levels" does not end with "return" at line 5135, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "create_nutrients_level_taxonomy" does not end with "return" at line 5220, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Comma used to separate statements at line 5304, column 5. See pages 68,71 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 5304, column 16. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "compute_nova_group" does not end with "return" at line 5495, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 5558, column 19. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Match variable used at line 5559, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "extract_nutrition_from_image" does not end with "return" at line 5771, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Food.pm: Subroutine "assign_categories_properties_to_product" does not end with "return" at line 5803, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/GeoIP.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/I18N.pm: Module does not end with "1;" at line 142, column 1. Must end with a recognizable true value. (Severity: 4 )
[x] [35mlib/ProductOpener/Images.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Images.pm: Match variable used at line 402, column 78. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Images.pm: Close filehandles as soon as possible after opening them at line 510, column 4. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Images.pm: Match variable used at line 567, column 78. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Images.pm: Subroutine "_set_magickal_options" does not end with "return" at line 1266, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Images.pm: Subroutine "extract_text_from_image" does not end with "return" at line 1538, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Import.pm: Symbols are exported by default at line 68, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Close filehandles as soon as possible after opening them at line 307, column 4. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Close filehandles as soon as possible after opening them at line 402, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Match variable used at line 683, column 24. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Match variable used at line 713, column 22. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Match variable used at line 844, column 32. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Match variable used at line 1372, column 26. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Subroutine "import_products_categories_from_public_database" does not end with "return" at line 1635, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Import.pm: Match variable used at line 1725, column 31. See page 82 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/ImportConvert.pm: Symbols are exported by default at line 57, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "assign_value" does not end with "return" at line 151, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Match variable used at line 167, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "remove_value" does not end with "return" at line 216, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "apply_global_params" does not end with "return" at line 230, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "apply_global_params_to_all_products" does not end with "return" at line 243, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "assign_main_language_of_product" does not end with "return" at line 255, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "assign_countries_for_product" does not end with "return" at line 278, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "match_taxonomy_tags" does not end with "return" at line 300, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "match_specific_taxonomy_tags" does not end with "return" at line 362, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "match_labels_in_product_name" does not end with "return" at line 418, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "assign_quantity_from_field" does not end with "return" at line 456, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Match variable used at line 465, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "clean_weights" does not end with "return" at line 495, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Match variable used at line 648, column 19. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "clean_fields" does not end with "return" at line 738, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "clean_fields_for_all_products" does not end with "return" at line 969, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "load_csv_file" does not end with "return" at line 1340, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Close filehandles as soon as possible after opening them at line 1366, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Match variable used at line 1467, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "recursive_list" does not end with "return" at line 1542, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "print_csv_file" does not end with "return" at line 1588, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "print_stats" does not end with "return" at line 1618, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ImportConvert.pm: Subroutine "extract_nutrition_facts_from_text" does not end with "return" at line 1676, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Index.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Index.pm: Subroutine "new" called using indirect syntax at line 76, column 9. See page 349 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Index.pm: Comma used to separate statements at line 77, column 2. See pages 68,71 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Ingredients.pm: Symbols are exported by default at line 60, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "init_allergens_regexps" does not end with "return" at line 192, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 198, column 23. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "init_labels_regexps" does not end with "return" at line 399, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "init_ingredients_processing_regexps" does not end with "return" at line 444, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "init_additives_classes_regexps" does not end with "return" at line 482, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Close filehandles as soon as possible after opening them at line 537, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "compute_carbon_footprint_from_ingredients" does not end with "return" at line 578, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "compute_carbon_footprint_from_meat_or_fish" does not end with "return" at line 632, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "extract_ingredients_from_image" does not end with "return" at line 729, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Always unpack @_ first at line 772, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "parse_ingredients_text" does not end with "return" at line 772, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 867, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 869, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 907, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 914, column 41. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 925, column 97. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 932, column 41. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1024, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1045, column 22. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1046, column 22. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1121, column 132. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1122, column 20. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1128, column 133. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1129, column 20. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1140, column 20. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1141, column 26. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1164, column 22. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1164, column 33. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1200, column 28. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1200, column 33. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "flatten_sub_ingredients_and_compute_ingredients_tags" does not end with "return" at line 1387, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "extract_ingredients_from_text" does not end with "return" at line 1478, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "delete_ingredients_percent_values" does not end with "return" at line 1534, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "init_percent_values" does not end with "return" at line 1635, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "analyze_ingredients" does not end with "return" at line 1881, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 1944, column 21. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Always unpack @_ first at line 2063, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Magic variable "$a" should be assigned as "local" at line 2221, column 5. See pages 81,82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "validate_regular_expressions" does not end with "return" at line 2690, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "split_generic_name_from_ingredients" does not end with "return" at line 2733, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 2745, column 24. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 2746, column 60. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 2782, column 20. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 2845, column 21. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 2880, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "clean_ingredients_text" does not end with "return" at line 2907, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 2977, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 3673, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "extract_ingredients_classes_from_text" does not end with "return" at line 3707, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 3731, column 25. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 3732, column 25. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4046, column 30. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4050, column 30. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4354, column 23. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4355, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4377, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4378, column 25. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "detect_allergens_from_text" does not end with "return" at line 4401, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4497, column 37. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4500, column 29. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Match variable used at line 4502, column 31. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Ingredients.pm: Subroutine "estimate_nutriscore_fruits_vegetables_nuts_value_from_ingredients" does not end with "return" at line 4595, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Lang.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Comma used to separate statements at line 87, column 3. See pages 68,71 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Match variable used at line 87, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Subroutine "generate_po_files" does not end with "return" at line 115, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Close filehandles as soon as possible after opening them at line 178, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Match variable used at line 281, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Subroutine "build_lang" does not end with "return" at line 332, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Comma used to separate statements at line 415, column 6. See pages 68,71 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Match variable used at line 415, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Expression form of "grep" at line 458, column 8. See page 169 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Subroutine "build_json" does not end with "return" at line 481, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Comma used to separate statements at line 497, column 4. See pages 68,71 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Lang.pm: Match variable used at line 497, column 15. See page 82 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Mail.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Missions.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Missions.pm: Subroutine "gen_missions_html" does not end with "return" at line 53, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Missions.pm: Subroutine "compute_missions" does not end with "return" at line 125, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/MissionsConfig.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Nutriscore.pm: Symbols are exported by default at line 76, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Orgs.pm: Symbols are exported by default at line 47, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Orgs.pm: Subroutine "store_org" does not end with "return" at line 127, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Orgs.pm: Subroutine "add_user_to_org" does not end with "return" at line 252, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Orgs.pm: Subroutine "remove_user_from_org" does not end with "return" at line 301, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/ProducersFood.pm: Symbols are exported by default at line 41, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/ProducersFood.pm: Subroutine "detect_possible_improvements" does not end with "return" at line 67, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ProducersFood.pm: Subroutine "detect_possible_improvements_nutriscore" does not end with "return" at line 85, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/ProducersFood.pm: Subroutine "detect_possible_improvements_compare_nutrition_facts" does not end with "return" at line 199, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Products.pm: Symbols are exported by default at line 68, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "make_sure_numbers_are_stored_as_numbers" does not end with "return" at line 158, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 248, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 254, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 257, column 12. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 359, column 16. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 390, column 16. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 423, column 16. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 458, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 458, column 32. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "send_notification_for_product_change" does not end with "return" at line 691, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "change_product_server_or_code" does not end with "return" at line 783, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "compute_sort_keys" does not end with "return" at line 845, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "compute_data_sources" does not end with "return" at line 1157, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 1224, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "compute_completeness_and_missing_tags" does not end with "return" at line 1239, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 1449, column 11. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "replace_user_id_in_product" does not end with "return" at line 1486, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "find_and_replace_user_id_in_products" does not end with "return" at line 1593, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "compute_product_history_and_completeness" does not end with "return" at line 1637, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Expression form of "grep" at line 1856, column 32. See page 169 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "add_back_field_values_removed_by_user" does not end with "return" at line 2002, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 2085, column 38. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "index_product" does not end with "return" at line 2200, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "compute_codes" does not end with "return" at line 2230, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "compute_languages" does not end with "return" at line 2285, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 2297, column 64. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 2490, column 26. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Match variable used at line 2602, column 24. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "log_change" does not end with "return" at line 2651, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Products.pm: Subroutine "add_user_teams" does not end with "return" at line 2718, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Store.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Store.pm: Always unpack @_ first at line 235, column 1. See page 178 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Store.pm: Always unpack @_ first at line 242, column 1. See page 178 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Tags.pm: Symbols are exported by default at line 49, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "add_tag" does not end with "return" at line 337, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "load_tags_images" does not end with "return" at line 376, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "load_tags_hierarchy" does not end with "return" at line 398, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 418, column 6. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 456, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 476, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 521, column 29. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 595, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "build_tags_taxonomy" does not end with "return" at line 753, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 781, column 6. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 851, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 866, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 1173, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1227, column 18. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1245, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1304, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 1324, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1373, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1387, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 1477, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "retrieve_tags_taxonomy" does not end with "return" at line 1660, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 1700, column 6. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1712, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1902, column 11. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1912, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1913, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 1972, column 11. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2068, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2128, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2227, column 18. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2464, column 17. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2592, column 56. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2604, column 52. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2638, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "generate_spellcheck_candidates" does not end with "return" at line 2819, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2879, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 2988, column 10. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 3053, column 14. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 3054, column 13. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "export_tags_hierarchy" does not end with "return" at line 3082, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "init_emb_codes" does not end with "return" at line 3176, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 3193, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 3226, column 2. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 3248, column 3. See page 209 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "add_tags_to_field" does not end with "return" at line 3361, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Match variable used at line 3424, column 29. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "compute_field_tags" does not end with "return" at line 3433, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "add_user_translation" does not end with "return" at line 3572, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "load_users_translations" does not end with "return" at line 3622, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Subroutine "add_users_translations_to_taxonomy" does not end with "return" at line 3638, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Tags.pm: Close filehandles as soon as possible after opening them at line 3646, column 6. See page 209 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/TagsEntries.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/Text.pm: Symbols are exported by default at line 52, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[x] [35mlib/ProductOpener/URL.pm: Symbols are exported by default at line 53, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/URL.pm: Expression form of "grep" at line 121, column 14. See page 169 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/URL.pm: Expression form of "grep" at line 122, column 9. See page 169 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Users.pm: Symbols are exported by default at line 51, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "generate_token" does not end with "return" at line 106, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "create_password_hash" does not end with "return" at line 112, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "check_password_hash" does not end with "return" at line 118, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "create_user" does not end with "return" at line 144, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "check_user_form" does not end with "return" at line 375, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "check_edit_owner" does not end with "return" at line 633, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Match variable used at line 648, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Match variable used at line 653, column 16. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Match variable used at line 957, column 15. See page 82 of PBP. (Severity: 4 )
[ ] [35mlib/ProductOpener/Users.pm: Subroutine "save_user" does not end with "return" at line 1070, column 1. See page 197 of PBP. (Severity: 4 )
[x] [35mlib/ProductOpener/Version.pm: Symbols are exported by default at line 29, column 2. Use '@EXPORT_OK' or '%EXPORT_TAGS' instead. (Severity: 4 )
[ ] [35mlib/startup.pl: Magic variable "$SIG" should be assigned as "local" at line 36, column 14. See pages 81,82 of PBP. (Severity: 4 )
[ ] [35mlib/startup_apache2.pl: Magic variable "$SIG" should be assigned as "local" at line 38, column 14. See pages 81,82 of PBP. (Severity: 4 )
[ ] [35mt/dataquality.t: Subroutine "check_quality_and_test_product_has_quality_tag" does not end with "return" at line 10, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mt/dataquality.t: Subroutine "product_with_code_has_quality_tag" does not end with "return" at line 24, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mt/dataqualityfood.t: Subroutine "check_quality_and_test_product_has_quality_tag" does not end with "return" at line 10, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mt/dataqualityfood.t: Subroutine "product_with_energy_has_quality_tag" does not end with "return" at line 24, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mt/ingredients_tags.t: Match variable used at line 144, column 20. See page 82 of PBP. (Severity: 4 )
[ ] [35mt/ingredients_tags.t: Match variable used at line 145, column 20. See page 82 of PBP. (Severity: 4 )
[ ] [35mt/lang.t: Subroutine "test_links" does not end with "return" at line 13, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mt/lang.t: Subroutine "test_logo_exists" does not end with "return" at line 67, column 1. See page 197 of PBP. (Severity: 4 )
[ ] [35mt/products.t: Subroutine "compute_and_test_completeness" does not end with "return" at line 27, column 1. See page 197 of PBP. (Severity: 4 )
There's more in https://github.com/hangy/openfoodfacts-server/pull/615/checks?check_run_id=887085745#step:4:7, if you want.
closing this one since perl critic is now run on tests
product_jqm.pl