my @files = ("me~swimming.jpg" ,"J.R,ewing.jpg" , "#&%$&$=Ö-.GIF"); foreach my $file (@files) { my @name_parts = split /\W{1,}/,$file; my $extension = pop @name_parts; my $newname = (join '_',@name_parts) . "\.$extension"; print "$newname\n"; }