В вашем скрипте Perl есть
open CSV2, "<csv2" or die;
...
open CSV1, "<csv1" or die;
Где находятся эти файлы? Текущий каталог cron - это домашний каталог пользователя. Если файлы находятся в каталоге "newitems", сначала вам необходимо cd
.
Убедитесь, что вы не делаете никаких других предположений о среде в ваших программах.
Я считаю, что это удобная команда, которую можно один раз включить в вашем crontab:
#* * * * * { date; pwd; echo "env:"; env; echo "set:"; set; } > ~/cron.env
Отличное замечание @Otheus:
if ! /usr/bin/perl "$match" > "$matches"; then
status=$?
echo "$match script returned unsuccessfully"
exit $status
fi