in reply to Handling variable column position

I've thought about searching @F using grep for the MD:Z: pattern, although this seems like it may be slow and i'm not then sure how I would extract out the index of the match

See List::MoreUtils::firstidx()


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: Handling variable column position
by Anonymous Monk on Aug 19, 2016 at 12:38 UTC
    Awesome, thanks. Is there a way to do this without using a non-core module?
      Is there a way to do this without using a non-core module?

      Update: Added required ->'s per choroba's offline observation. (Many thanks!)

      You could write your own:

      sub firstidx(&@) { my $code = shift; $code->( $_[ $_ ] ) and return $_ for 0 .. $#_; }

      But it won't be as fast as the (XS) module.

      A possibly better version::

      sub firstidx(&@) { my $code = shift; $code->( local $_ = $_[ $_ ] ) and return $_ for 0 .. $#_; }

      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
      In the absence of evidence, opinion is indistinguishable from prejudice.

      The most obvious way would be a loop.

      $i = 0; until( $F[$i] =~ m/MD:Z/ || $i > $#F ) $i += 1 } if ($i <= $#F) { print "It's field $i\n" }
      But God demonstrates His own love toward us, in that while we were yet sinners, Christ died for us. Romans 5:8 (NASB)