Ok ... here is the explaination:
PERL is magic

----------------------
Actually, the perl -l is to run perl, -e switch allows you to execute the information inside the quotes with the perl interpretor ... it's like running a perl script that contains the information inside the quotes ... in this case the perl command that is executed is:
rename $_, lc( $_ ) foreach <*>$_ (in perl) is the topic ... which in generic terms means the currently selected item...if you want a more detailed explaination of topic, see
this. In this code, the topic is going to be a
filename.
lc() is a function in perl to convert text to lowercase ... in this example, it converts $_ (the filename) to lowercase.
rename x,y in perl will rename file x to the name y ... it is very similar to the command
mv in bash (except there is a comma between filenames). In this case $_ (the original filename) is renamed to lc($_) the lowercase filename.
foreach defines a list of items to do sometime on ... in this case <*> will generate a list including all files in a directory...try this command to see a list of all the files in a directory:
perl -le 'print $_ foreach <*>'So, put it all together and
perl -le 'rename $_, lc( $_ ) foreach <*>' will convert all filenames in a directory to thier lowercase equivalant.
I actually know a little bit about perl ... see my old
website ... which I haven't updated since 1999 (i think) ... I don't even know the passwords to make changes to the site anymore....(WOW what a flashback!)