The option FOPSORT in /etc/amportal.conf can be defined as either extension or lastname.
When set to lastname, the sort doesn't work, for two reasons.
The original regex doesn't do a great job, and $b_var is never assigned.
Sorry not in diff format, I've made lots of other mods.
sub by_lastname {
$a_var = $a->[0];
$b_var = $b->[0];
($a_firstname,$a_lastname)=$a_var=~/^\s*([0-9A-Za-z_\-\s.]*)\s+([^0-9][0-9A-Za-z_\-.]*).*$/;
($b_firstname,$b_lastname)=$b_var=~/^\s*([0-9A-Za-z_\-\s.]*)\s+([^0-9][0-9A-Za-z_\-.]*).*$/;
if (!$a_lastname) {$a_lastname=$a_var;}
if (!$b_lastname) {$b_lastname=$b_var;}
$sortResult=lc $a_lastname cmp lc $b_lastname;
if ($sortResult == 0)
{ $sortResult=lc $a_firstname cmp lc $b_firstname }
return $sortResult;
}