in reply to Take file A , translate it, place in new file

When it's just a matter of giving perl a couple of file names, one for input and one for output, I really prefer having that stuff all on the command line, rather than requiring the perl script itself to prompt for an interactive response from the person running the script. There are a few ways to do this: (In the second example, the "if" condition will cause the script to die with with usage summary if you run it with no args and STDIN is not coming from a pipe or redirection.)

As for your usage of "tr///", I wonder what you're trying to accomplish with  tr/a-zA-Z/0-310/ because that really means:

a -> 0 \ b -> 1 \ "0-3" defines a continuous character range c -> 2 / starting at "0", ending at "3", incl. "1" & "2" d -> 3 / e -> 1 fg-zA-Z -> 0
When I see a dash used between two numerics like that with the tr/// operator, my first impression is that the intent is probably different from the actual result...