my @fields = ( split /\s+/ ); # need to hold on to all fields for later my( $index, $label ) = @fields[4, -1]; # this is an array slice #### use 5.010; given( $label ) { when ( 'A' ) { $fields[ -2 ] = $x; } when ( 'B' ) { $fields[ -2 ] = $y; } default { say "OOPS! bad label"; } } #### say join "\t", @fields; # separates fields with TAB