I need to do a mass search-and-replace on our category headers and footers for a dead absolute URL put in a number of them.

I've written a Perl script that opens oui/ouicats.dbf, pulls a single record (for testing), and runs a regex search on the header and footer fields from the record, replacing the record afterwards. When the script runs, it works, and loading the page shows the changes. But in the backend, I still see the old text in the category's header and footer fields.

I've written similar scripts to edit other database tables, and they've worked fine, with the changes showing in the backend. I've tried packing my databases after the edit, with no result. Any idea why the backend doesn't reflect the changes?