my ($pfmt,$line,@header = ("s50c150"); sub packlen { length pack $_[0]; # too fussy length pack $_[0], (unpack $_[0], (pack $_[0])); } read FILE, $line, packlen($pfmt) or die $!; @header = unpack $pfmt, $line; #### $ perl -e '$foo="I50a150";print length(pack $foo),$/' 350 $