http://www.perlmonks.org?node_id=1057291


in reply to using Backtick inside perl gives different output

As Laurent_R points out, this can be much more simply done in Perl. Taking your raw output as my input, I grep any lines of interest then pass them through a map. Split breaks each line up and I pull out the 9th element (subscript 8 as subscripts are zero-based) from the map and print it.

$ perl -Mstrict -Mwarnings -E ' open my $ntpqFH, q{<}, \ <<EOD or die $!; remote refid st t when poll reach delay offset + disp ====================================================================== +======== LOCAL(0) LOCAL(0) 10 l 34 64 377 0.00 0.000 + 10.01 *gpstime.domain.l .PPS. 1 u 879 1024 377 1.85 -0.02 +5 0.03 hitman.domain.lo 0.0.0.0 16 - - 1024 0 0.00 0.00 +0 16000.0 EOD my @asteriskLines = grep m{^\*}, <$ntpqFH>; say for map { ( split )[ 8 ] } @asteriskLines;' -0.025 $

I hope this is of interest.

Cheers,

JohnGG