さて、次のようなコードに出くわしました
@documents_names = sort {
!!$deleted_documents_names{$a} == !!$deleted_documents_names{$b}
? uc($a) cmp uc($b)
: !!$deleted_documents_names{$a}
cmp !!$deleted_documents_names{$b}
} @documents_names;
二重否定の使い方は初めて見ました。それの用途は何ですか?人はいつそれを使用しますか?