Используйте |
для подключения альтернатив. Кроме того, используйте qr//
для создания объектов регулярных выражений, используя простые /.../
совпадения с $_
и присваивайте результат $first_pattern
и $second_pattern
.
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
my $string = '1..1188,1189..14,14..15';
my $first_pattern = qr/\.\./;
my $second_pattern = qr/,/;
my @integers = split /$first_pattern|$second_pattern/, $string;
say for @integers;
Возможно, вам нужно \.\.
, чтобы сопоставить две точки, поскольку \..
соответствует точке, за которой следует что угодно, кроме новой строки. Кроме того, нет необходимости ставить запятую в обратном слэше.