#! /usr/bin/perl -l use strict; use warnings; my @parameters; my @operators; my @value1; my @value2; while ( my $line = ) { my ( $param, $operator, $value1, $value2 ) = split /\s/, $line; push @parameters, $param; push @operators, $operator; push @value1, $value1; push @value2, defined $value2 ? $value2 : ''; # if $operator is not 'between' $value2 shouldn't be defined, so just add empty string # maybe you want to check $operator additionally } # fill your variables instead of printing print join '|', @parameters; print join '|', @operators; print join '|', @value1; print join '|', @value2; __DATA__ ID1 > 66 ID2 < 7 ID3 between 6 10