sub optional_unique_properties { qw( class completed created description dtstamp dtstart geo last-modified location organizer percent-complete priority recurrence-id sequence status summary uid url due duration ); } #### use Data::Dumper; use strict; use Data::ICal::Entry::Todo; my $vtodo = Data::ICal::Entry::Todo->new(); print Dumper($vtodo->optional_unique_properties()); #### $VAR1 = 'class'; $VAR2 = 'completed'; $VAR3 = 'created'; $VAR4 = 'description'; $VAR5 = 'dtstamp'; $VAR6 = 'dtstart'; $VAR7 = 'geo'; $VAR8 = 'last-modified'; $VAR9 = 'location'; $VAR10 = 'organizer'; $VAR11 = 'percent-complete'; $VAR12 = 'priority'; $VAR13 = 'recurrence-id'; $VAR14 = 'sequence'; $VAR15 = 'status'; $VAR16 = 'summary'; $VAR17 = 'uid'; $VAR18 = 'url'; $VAR19 = 'due'; $VAR20 = 'duration'; #### use base qw/Data::ICal::Entry/; #### sub new { my $class = shift; my $self = { properties => {}, entries => [], }; bless $self, $class; return $self; }