A simple split to two parts may not be enough depending upon the OP's filenames and how many '.' characters might be contained within those names. I think that a regex assignment would be more appropriate instead of a split. But it could be that this is all the OP needs.
That's why using File::Basename seems a good idea as it provides an easy interface to extract path, files-basename and extension.
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
My blog: Imperial Deltronics