$d1 = substr($field, 0, 2); # 2 bytes $d2 = substr($field, 2, 2+2); # 4 bytes $d3 = substr($field, 4, 4+6); # 6 bytes etc. #### my @d; for my $i (0 .. $length-$n) { $d[$i] = substr($field, $i*$n, $n) } #### my @d = map{ substr $field, $_*n, $n } 0 .. ($length)/$n; #### my @d = unpack("A$n " x $length/$n, $field); #### my @d = $field =~ m[.{1,$n}]g;