in reply to Printing Columns from Two Different Files
while (<>) {
It's not hanging, it's waiting for input on STDIN just like you asked it to do. Perhaps you mean to iterate over @data instead?