in reply to Invalid use of constant pragma?

Well, you don't show lots of the code so it could be that you don't use strict and your real code says: if( ARCHVE eq "" ) { for example. Or it could be a more complex flow control problem that prevents the if block from ever running. I don't see any smoking guns in the code that you have provided.

        - tye (but my friends call me "Tye")