in reply to Store the outcome of a foreach loop in an array

use strict; use warnings; use Test::More tests => 1; my $lines = [ 'c1r1,c2r1,c3r1,c4r1,c5r1', 'c1r2,c2r2,c3r2,c4r2,c5r2', 'c1r3,c2r3,c3r3,c4r3,c5r3' ]; my @store; foreach my $line (@$lines) { my @val = split (/,/, $line); push @store, $val[2]; } is_deeply (\@store, ['c3r1', 'c3r2', 'c3r3']);

See How to ask better questions using Test::More and sample data.

You didn't need to escape the comma in the regex. You don't need the brackets in the push statement. A single array element is better written with a $ sigil. That aside, your code (as demonstrated here) works fine.