my ($id,$pass,$user,$cookie); ( ( $id = $cgi->param( config('username_param') ) ) and ( $pass = $cgi->param( config('userpass_param') ) and $pass = crypt( $pass, $id ) ) ) or ( $cookie = do { require CGI::Cookie; my %c = CGI::Cookie->fetch; $c{ config('user_cookie') } } and ($id,$pass) = $cookie->value() ) or ($id,$pass) = (config('anonymous_name'),config('anonymous_pass'));