use Modern::Perl; '293F:2945' =~ /(.+):(.+)/ and say join ',', map { sprintf '%X', $_ } eval "0x$1..0x$2";