I like to define a value subroutine. sub myvalue { return uc($options{$_[0]}->{type} // "") }
This particular one returns the empty string ("") if $options{$_[0]}->{type} is undefined. Now the sort becomes: sort {myvalue($a) cmp myvalue($b)} keys %options This code is untested but maybe you see the idea. chris On Tue, Apr 11, 2017 at 7:13 AM, Mike Martin <m...@redtux.org.uk> wrote: > Hi > > I have the following code as an example against a hash of hashes, to sort > by hashrf key > > foreach my $opt (sort {uc($options{$b}->{type}) cmp > uc($options{$a}->{type})} keys %options){ > my $type=$options{$opt}->{vtype}; > $video_type->append_text($type) if defined($type) ; > } > > The sort function works perfectly, however perl throws up the following > warning for each line > > Use of uninitialized value in uc at > > Any ideas how to get rid of the warning > > thanks > > Mike > >