C:\test>perl -F"\|" -anle"$n=0;if($.==1){ %names=map{$_,$n++}@F;next}; print join'|', @F[@names{'AGE','NAME'}]" junk.csv 23|AAA 34|BBB 11|CCC