my $csv = new Text::CSV_XS({'binary' => 1}); my $fh = wraphandle(\*STDIN); my $columns = 1; while ($columns = $csv->getline($fh) and defined $columns and scalar(@$columns)) { # do stuff with @$columns }