#!/usr/bin/perl use warnings; use strict; my $bug_fix_msg = "this 33,44 is a fix for mybug44,99 real \ bug 99 again bug33r bug1722,3 bUg:99, \ bugs:456, 17, 24 bugs 42,58 bug: 50,50"; my %unique; while ( $bug_fix_msg =~ /\bbugs?:?([\s\d,]*)\b/ig ) { print "$1\n"; $unique{ $_ }++ for $1 =~ /\d+/g; } my @sorted = sort { $a <=> $b } keys %unique; print "unique: @{[keys %unique]}\n"; print "sorted: @sorted\n";