$line = '|i1234|lABCD|i5678|i90|lBOO'; while($line =~ /\|i([^|]*)|\|l([^|]*)/g) { print("barcode: $1\n") if (defined($1)); print("homeloc: $2\n") if (defined($2)); } __END__ output ====== barcode: 1234 homeloc: ABCD barcode: 5678 barcode: 90 homeloc: BOO