@data = sort by_tags @data; sub by_tags { my ($tag_id_A,$tag_A) = $a =~ m/(\d+)/g; my ($tag_id_B,$tag_B) = $b =~ m/(\d+)/g; $tag_A <=> $tag_B or $tag_id_A <=> $tag_id_B }