use strict; use warnings; opendir(HERE,'.') or die "Epic failure.\n"; my @paths = readdir(HERE); closedir(HERE) or warn "Whatever.\n"; open(DATA,"data.txt") or die "Rename your text file 'data.txt'.\n"; my @data; while() { chomp; next unless length; push(@data,$_); } close(DATA) or warn "Whatever two.\n"; foreach my $path (@PATHS) { next unless $path =~ /.*\.mp3$/io; my $newpath = shift @data, '.mp3'; rename($path,$newpath); }