changing to match non-whitespace instead of digits works for me:
# Normal result looks like
# * 0. 0a:00.0 ATI Radeon HD 5800 Series
# 1. 09:00.0 ATI Radeon HD 5800 Series
# 2. 04:00.0 ATI Radeon HD 5800 Series
#
# * - Default adapter
...
unless ($adapter_list =~ m/^.*\d+\.\s+\S{2}:\d{2}\.\d\s+.*/) {
...
if (($id,$address,$description) = $line =~ m/^.*(\d+)\.\s+(\S{2}:\d{2}\.\d)\s$
...