Я думаю что проблема в том что $ENV{'HTTP_COOKIE'} почти всегда выдает true, даже если конкретно $cookies{'name'}->value ничего и не содержит... попробуй, определять по конкретной переменной, ну например так (или что-то вроде):
Код:
%cookies = fetch CGI::Cookie;
$str = $cookies{'name'}->value;
if($str){
}
else {$str="guest";}