in reply to Perl appears to be dropping last character of line

Here is an SSCCE showing that it works fine for me.

#!/usr/bin/env perl use strict; use warnings; my $debug = 1; my @input = <DATA>; read_gage_header (\@input); sub read_gage_header { my ($data, $header, @headers, $ettb_no, $year); $data = shift; #Now get ettb_no $header = $data->[0]; @headers = split / /, $header; #NOTE: this print yields expected results print "HEADERS before ettb_no @headers\n" if defined ($debug); #NOTE: this gets the proper ettb_no $ettb_no = $headers[4]; #Skip to get to Year shift @$data; shift @$data; shift @$data; $header = shift @$data; #NOTE: this gives me "Year 201" print "HEADER before year $header\n" if defined ($debug); } __DATA__ Gage Information - 240CN - 240 FEEDER CANAL SUPPLY TO 240 FEEDER FROM BELEN HIGH LINE CANAL + Year 2019 Month Day Time Height Discharge (mst) (HP ft) (QR cfs) ----- --- ---- ------ --------- July 29 1230 5.54 80 ... more data ...

Which produces this output when run:

$ perl 11109714.pl HEADERS before ettb_no Gage Information - 240CN - 240 FEEDER CANAL + HEADER before year Year 2019

In other words, the problem is with the code that you haven't shown us - the part where you read in the input and populate your $data.