sub variants { my $e=shift(@_); return @_ ? map { ( [lc($e),@{$_}], [uc($e),@{$_}] ) } variants(@_) : ([lc($e)],[uc($e)]); }