# using your output in var $status my (%drives, $loaded); # remove last line from $status and assign to $loaded # of course, this assumes nice, predictable output, since # it's simply looking for the word Drive: $status =~ s/\n(Drive:.+)$// && ($loaded = $1); # create your hash with the remainder of $status %drives = split( m[\n|\s+], $status, 12 );