c:\@Work\Perl\monks>perl -wMstrict -le "use 5.014; ;; my $curdir = 'Y:\Music\Schubert\Lieder\Terfel'; my $startdir = 'Y:\mUsIc\\'; ;; my $plsname = $curdir =~ s{ \A (?i) \Q$startdir\E | \\ }{ $-[0] ? '_' : '' }xmsreg . '.pls'; print qq{'$plsname'}; " 'Schubert_Lieder_Terfel.pls' #### c:\@Work\Perl\monks>perl -wMstrict -le "print qq{perl version $]}; ;; my $curdir = 'Y:\Music\Schubert\Lieder\Terfel'; my $startdir = 'Y:\mUsIc\\'; ;; my %replace = ('1', '', '-1', '_', '0', '.pls'); (my $plsname = $curdir) =~ s{ \A (?i) \Q$startdir\E | \\ | \z } {$replace{ $-[0] == 0 || $-[0] <=> $+[0] }}xmsg; print qq{'$plsname'}; " perl version 5.008009 'Schubert_Lieder_Terfel.pls' #### c:\@Work\Perl\monks>perl -wMstrict -le "print qq{perl version $]}; ;; my $curdir = 'Y:\Music\Schubert\Lieder\Terfel'; my $startdir = 'Y:\mUsIc\\'; ;; my %replace = ('1', '', '2', '_', '3', '.pls'); (my $plsname = $curdir) =~ s{ (\A (?i) \Q$startdir\E) | (\\) | (\z) } {$replace{ $#- }}xmsg; print qq{'$plsname'}; " perl version 5.008009 'Schubert_Lieder_Terfel.pls'