#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11112217 use warnings; use List::Util qw( sum ); my @array = qw( 1 2 3 4 5 ); local $_ = "@array"; for my $possible ( 1 .. @array ) { my $pattern = join '.+?', ('\b(\d+)\b') x $possible; local $" = '+'; /$pattern(?{print "@{^CAPTURE} = ", sum(@{^CAPTURE}), "\n"})(*FAIL)/; }