#!perl #Adjust for your system use warnings; use strict; # You did just forget these 2 lines? my $lcount=0; # Of course you'll need to declare your variables with my my $userout=''; my $listfile = "your filename"; # Always check that the open worked. open(FILE, $listfile) or die "Couldn't open $listfile: $!\n"; while(my $user = ) { # $user =~ s/(\r|\n)//; # windows compatibility chomp $user; # Does what you were trying to do above but works on Macs as well $userout .= $user . ','; # Does the same. $lcount++; if ($lcount == 20) { print PIPE $userout; # no need to interpolate vars to print them # I assume this means you want to print them to ALL to PIPE 20 at a time $lcount=0; # In which case you need to clear $userout $userout = ''; #If you only want the first 20 uncomment the next line # last; } # next if !$user; #No idea what you thought this did? }