I almost missed this as you didn't reply directly to my node. So for some reason, you won't know at the time you open the file if you are going to need to ucase it or not. Probably the easiest thing to do this then is to tie all your filehandles up front. Default behavior is a normal filehandle, but you would add a method to toggle ucase which could be called at any time.