I'm pretty sure that chdir("-") will only work
under certain UNIX shells. Actually, in limited testing, it
doesn't seem to work for me even when the Perl script is
run from a shell (tcsh) that does support that.

UPDATE: In retrospect, as merlyn has pointed out,
this would in fact never work. My pre-post testing
actually bore that out. No more late (for me) night posting...

You can omit the quotes around lone variable names. That is,
"$file" and $file are the same in
all of your cases.

As an aside, if you use the Cwd module and
its getcwd() function, your code will be portable to
non-UNIX systems (that probably don't have a pwd command
to shell out to). You don't really need to use either
method, though.
Since you are presumably in the directory you want to open, you can use: opendir(DIR,'.').

I say presumably because the code really should be checking to see if the chdir() you did succeeded, or you could end up with unexpected results. Likewise, you might consider
using the -e test to see if a file named $file already
exists before you rename(), so you don't overwrite something accidentally.

chdir "-"; won't work anywhere. All I can say is "untested code".
It doesn't matter what your shell is. Perl is handing that to chdir(2) which is then looking (regardless of shell) for a subdirectory called dash underneath the current directory.

That's why you should always always always check the return status
of chdir -- to prevent such embarassment.

It doesn't matter for this script as it doesn't matter for most scripts. This particular script is slow because of forking and filesystem changes. Changing the s/// to a tr/// won't increase the speed notably. Not even for a million MP3 files.

[Your Mother]:They get almost everything wrong on every level. I think they create and restrict the market and fundamentally misunderstand audiences.

[Your Mother]:Consider how long, for example, superhero movies were kept at bay because they weren't commercially viable. They always were, just Hollywood couldn't see it or understand how to make one because there is no management talent in the town.

[LanX]:Erich von Strohheim built his career on beeing the most hated guy (The man you love to hate)