The format of the file you described looks like CSV, but with pipes instead of commas.
DBD::CSV provides access to such data in DBI style. Rewriting code to use it could be a good first step before moving to a heavy-weight DBMS.
s;;Just-me-not-h-Ni-m-P-Ni-lm-I-ar-O-Ni;;tr?IerONim-?HAcker ?d;print