http://www.perlmonks.org?node_id=741292

paulg007 has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks, I am v new to perl. I have a directory of mp3's 001.mp3-020.mp3 and need to rename them based on the contents of a file (listing.txt) containing the mp3 titles. I have looked at hash's, comparing arrays..... I would have posted the code I have tried but have tried so many different ways its just turned into one big mess!!! appreciate any suggestions you may have.

Replies are listed 'Best First'.
Re: rename mp3's from file listing
by toolic (Bishop) on Feb 04, 2009 at 14:36 UTC
    Post some of your code. Show us what your "listing.txt" file contents look like (assuming it's only 20 lines or so). Explain why you think it is not doing what you want.
Re: rename mp3's from file listing
by revdiablo (Prior) on Feb 04, 2009 at 16:41 UTC

    It sounds like you're not even sure how to approach the problem. Here's some pseudocode that may be helpful:

    for each line in file: extract (old_name, new_name) from line new_name_of{old_name} = new_name for each file in directory: new_name = new_name_of{file} rename file, new_name

    As toolic mentioned, you haven't provided us quite enough information to be completely helpful. In other words, this pseudocode may not be exactly what you need, so caveat emptor.

    Additionally, do you need to do this for one directory, or a whole bunch of them? If you need more than one, you'll have to build an additional looping structure. Even for one, you should probably make a function to do the work for you. Then you can call the function in a loop, if you need to.

Re: rename mp3's from file listing
by leocharre (Priest) on Feb 04, 2009 at 18:38 UTC