1. Не используйте threads, они deprecated. Если нужно в несколько потоков обрабатывать, делайте лучше через fork
2. Навтыкайте везде print/say, например, после строки
$source_file =~ m/^.*(?:\\|\/)(.*?).[a-zA-Z0-9]+$/;
поставьте print $1 . "\n"; чтобы убедиться, что регулярка верна, ну и дальше по коду так же.