As others have said it is certainly possible. I have used DBD::CSV and saved the resulting structure in a BLOB in a MySQL database. I also regularly use Data::Dumper to store structures in a MySQL text or BLOB field in situations where the structure of the data is variable. For example, right now I am using SQL::Abstract to build SQL queries within a programme. The queries are dynamically created, but it is useful to be able to recall the queries. So the complex structure which is used to build the query is saved as a text element using Data::Dumper, then it is eval'ed when we retrieve it and the hash is reconstructed.
The type of 'recursion' that you propose, is not impossible to conceive, and if it can be conceived it can be coded!
jdtoronto