#!/usr/bin/perl use strict; use warnings; use Text::CSV_XS; # this is what reported an error, right? my $target = ( @ARGV ) ? shift : 'egik'; my $csv = Text::CSV_XS->new; my @keep; while ( my $row = $csv->getline( \*DATA )) { $row->[4] =~ /[$target]/ or next; push @keep, $row; } print join( " : ", @$_ )."\n" for ( @keep ); __DATA__ a,b,"c,c",d,e,f,g,h b,c,d,e,"f,f",g,h,i c,d,e,f,g,h,"i,i",j "d,d",e,f,g,h,i,j,k e,f,g,h,i,j,k,"l,l" f,"g,g",h,i,j,k,l,m g,h,i,"j,j",k,l,m,n h,i,j,k,l,"m,m",n,o