Thanks :)
Come to think of it, there's another beautification I realised later:
Changing print (join ('->', @_) . "->$key - $value\n");
to print (join ('->', @_, $key) . " - $value\n");
Because joining first and then appending the last bit of data manually is ugly :-P