in reply to reading in fixed width
23+15=38 so "continuing on to position 28" doesn't make a lot of sense. Assuming that you meant (23,15) & (48,10), you could us unpack:
($1,$2) = unpack 'x23 A15 x10 a10', $var;
If you insist on using a regex, then with the same change of spec as above, you could use:
$var =~ m[^.{23}(.{15}}.{10}(.{10})];
Or if you really did mean overlapping bits then you could use substr
or unpack$1 = substr $var, 23, 15; $2 = substr $var, 28, 10;
($1,$2) = unpack 'x23 a15 X10 a10', $var;
Or a regex:
$var =~ m[(?=.{23}(.{15}))(?=.{28}(.{10}))];
Of course, using named vars rather than $1 & $2 would make more sense :)
|
|---|