Это может быть:
$str="abc123defg";
$str =~ /[0-9]+/;
$num_1 = $&;
Ваш awk напрямую переводится на:
$str="abc123defg";
$str =~ /[0-9]+/;
$num_1 = substr($str, $-[0], $+[0]-$-[0]);
Что можно записать как:
use English;
$str="abc123defg";
$str =~ /[0-9]+/;
$num_1 = substr($str, $LAST_MATCH_START[0], $LAST_MATCH_END[0]-$LAST_MATCH_START[0]);