Simplifying a little
#!/usr/bin/perl
use strict; # https://perlmonks.org/?node_id=11150757
#use warnings; # uncomment for newer perls
my $target = "/home/zsolti/Temp";
$target = '../mnt/home/old'; # FIXME for testing on my system
my @exclude = (
#'2023_02_21_Szentendre_Pilis_EK_oldal'
'webftp'
,'x'
);
my (@audioFiles, %playList);
my $numOfRandFiles = 10;
my @stack = $target;
while( my $path = pop @stack )
{
grep $path =~ /\/\Q$_\E\z/, @exclude and next;
push @audioFiles, grep -f, <$path/*.mp3>;
push @stack, grep -d, <$path/*>;
}
$playList{ splice @audioFiles, rand @audioFiles, 1 or last } = $_
for 1 .. $numOfRandFiles;
printf "%3d %s\n", $playList{$_}, $_ for sort keys %playList;