in reply to Splitting data into chunks!

How is your data currently broken up? Your code suggests that everything you showed is one record in @Switch_Array. So you're splitting it on the port-channel lines, which seems ok; you'll get alternating tags and values from that, so you might assign it to a hash. But not if ordering is important.

So you've got a list of elements, each of which is either a port-channel line or a block of data, from which you want to extract the port list.

my @Filter = split /(port-channel \d\n)/, $Info; for (@Filter) { unless (/^port/) { # strip out the junk s/.*Ports://s; # Everything up to Ports:, even crossing line b +oundaries s/^\s+//m; # Leading spaces on lines s/\s.*//; # Everything from the first space to the end of + a line } print; }

Caution: Contents may have been coded under pressure.