I would like to read each line of the text in .bz2 and pattern matching them with some keyword. But the problem with your code is the foreach loop only run once. That's why I thought want to store them in an array and use foreach to loop through all of the elements. But I don't know how to integrate the array as the output of the bzip2.