if ('foo' eq $val) { # process case 1 } elsif ('bar' eq $val or 'baz' eq $val) { # process case 2 } elsif ('boom' eq $val) { # process case 3 } else { print "Unexpected value '$val'!\n"; } #### use FileHandle; format foo_rec = FOO @>>>>>>> $flds[3] . format dflt_rec = @<<<<<<< @>>>>>>> @>>>>> @>>>>> $flds[2] $flds[3] $flds[5] $flds[9] . while () { my @flds = split /\|/, $_; if ($flds[0] eq 'foo') { format_name FS "foo_rec"; write FS; } else { format_name FS "dflt_rec"; write FS; } }