Text::vFile::Base is a Perl class for most of the functional classes based on the vCard/vCalendar etc spec. Most of the hard work in breaking apart lines of data happens using methods in here.
use vars qw(@ISA);
push @ISA, qw(Text::vCard::Base);
# Tell vFile that BEGIN:VFOO line creates one of these objects
# Then you will need to create a varHandler - although there are defaults to try
# and get you going.
# As well you will need to define more exotic, type specific loaders
# And finally accessors are your responsibility