use strict; use warnings; my @parsed; # <- Here's the array in question while ( ) { my @wanted = ( split )[ 0, 5, 9 ]; $wanted[1] =~ s/\D//g; push @parsed, join ',', @wanted; } print "$_\n" for @parsed; __DATA__ user1 192.168.1.1 machine1 (v1.1) (flexlmserver/27000 1009), start Sat 3/30 12:53 user2 192.168.1.2 machine2 (v1.1) (flexlmserver/27000 123), start Sat 3/30 2:45