sub split { my %key; if ($_[0] =~ /^(.+?):(.+?)$/) { $key{'name'} = $1; $key{'definition'} = $2; $key{'altdefinition'} = ''; } elsif ($_[0] =~ /^(.+?)\|(.+?)$/) { $key{'name'} = $1; $key{'altdefinition'} = $2; $key{'definition'} = ''; } elsif ($_[0] =~ /^(.+?):(.+?)\|(.+?)$/) { $key{'name'} = $1; $key{'definition'} = $2; $key{'altdefinition'} = $3; } return %key; }