use Tie::File; # Record separator per default = $/ use Fcntl 'O_RDONLY'; # open in read-only mode my ($sep1, $sep2) = ($ENV{'windir'}) # determine OS ? ("\r\n", "\n") : ("\n", "\r\n"); my $file = shift @ARGV; tie my @array, 'Tie::File', $file, mode => O_RDONLY, memory => 0, recsep => $sep1 or die $!; my $n_recs = @array; # how many records are in the file? unless ($n_recs > 1) { untie @array; tie @array, 'Tie::File', $file, mode => O_RDONLY, memory => 0, recsep => $sep2 or die $!; $n_recs = @array; print join ("~SEP~", @array); die "Found only one array element\n" unless $n_recs > 1; }