How to locate the data column instead of character position in Perl and Bash? : I have research data shown below

    FRAM_#     20000000      5000000(fs)  CN= 1	PRMRYTGT     16652      O	   16654      H  1.036	    8140     CA  2.586	    7319     AL  1.963

Where, there are O,H,CA,and AL atoms. The first atom is target atom oxygen, and the rest of them are neighbors which bond with the target oxygen. Except for the first atom (oxygen), the integer number before each atom is the atom ID, and the float number after it is the bond length with the first atom O(ID=16652). 

    $line="FRAM_#     20000000      5000000(fs)  CN= 1	PRMRYTGT     16652      O	   16654      H  1.036	    8140     CA  2.586	    7319     AL  1.963";
    @values=split(/\s+/,$line);

I can use loop to search the position of H in the array @values. However, is there any other way (not loop), like regex or BASH scripts, to get the position of H in the array? I highly appreciate it if you could provide me extra suggestion and help.

NOTE: I have data lines more than 1 million, thus, I have to consider the code efficiency. H is my target atom in this example. In the data lines, the amount of H may be various.