#! perl -slw use strict; use Data::Dump qw[ pp ]; my %dups; while( ) { my @nums = split ' ', $_; for my $l ( 2 .. @nums ) { ++$dups{ join ' ', @nums[ $_ .. $_+$l-1 ] } for 0 .. @nums - $l; } } #pp \%dups; $dups{ $_ } > 1 and print "$dups{ $_ } x '$_'" for sort keys %dups; __DATA__ 1 2 5 9 1 2 5 10 4 5 10 12 5 9 10 11 #### C:\test>1218823.pl 2 x '1 2' 2 x '1 2 5' 2 x '2 5' 2 x '5 10' 2 x '5 9'