Yes, an empty string is defined; if you want to see whether a defined string is empty or not, use ($title ne '').
If it's OK for these values to be undef (if you'll be checking defined($title) before printing them or whatever), you may want to consider:
sub get_my_params {
return(param('ticket'),
param('title'),
param('client'),
param('next_step'),
param('o_date'),
param('o_time')
);
}
But what you have is good, if you never want them to be undef.
for $a(-2,12){for $b(0..7){$c=0;$_?hex substr(
ef7fa1866706caeff02289402844,2*$_+$a,2)&2**(7-$b):0
and $c+=2**(7-$_)for(0..7);print chr $c;}}