I would have gone with an iteratively-built list, FWIW, and avoided the overhead in parsing fields the script won't use:
perl -e 'for $i (<>) { $i =~ s/ .*//; push @list, $i; }; print(sort(@list));'
EDIT: I decided to ask GPT-4 to translate the gawk script to Perl. I make zero claims that this is ideal (as stated, I don't know Perl at all), but it _does_ produce the same output, but slightly slower than the gawk script.