I would start with
Net::Server::Multiplex to deal with the networking.
If you have some relational database experience then you might consider storing the game state in a database. As an alternative you could store the game state in a global hash table.
There is a program called
PerlMUD that might give you some ideas.
And finally: Have fun with it!