!/usr/bin/perl use strict; use warnings; open my $handle, 'input.txt'; open my $handle, '<', 'input.txt'; chomp(my @list = <$handle>); close $handle; my @sets = []; for my $eacharray (@list) { @sets = map { my @prev = @$_; map [ @prev, $_ ], @$eacharray } @sets; } use Data::Dump 'dd'; dd @sets; The input.txt file is: [0..1] [2..4] [5..8]