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
>
>

Reply via email to