Tôi đang duy trì một số mã mà đọc giá trị trên một đài phát thanh nối tiếp và giải nén chúng vào cấu trúc dữ liệu Perl:Số lượng regex được đánh số tối đa là bao nhiêu?
# Don't yell at me, I didn't write this
if ($command_string =~
/^.(.)(.).(..)(.)(..)(.)(....)(....)(....)(....)
(..)(..)(.)(.)(.)(.)(..)(..)(..)(..)(..)(..)(.)(.).......
(.)........(.)(.).*/sx) {
$config->{sequence} = hex(unpack('H2', $1));
$config->{radio_id} = hex(unpack('H2', $2));
...
$config->{radio_type} = hex(unpack('H2', $26));
$config->{radio_channel} = hex(unpack('H2', $27));
}
này trở nên cồng kềnh chụp regex khiến tôi ngạc nhiên: những gì là giới hạn trên các biến chụp đánh số trong Perl? Liệu nó đi tất cả các con đường lên đến $MAXINT
?
Perl, ở bất cứ nơi nào thực tế, không áp đặt giới hạn nhân tạo (làm mục tiêu thiết kế). – DavidO
Regex được thực hiện tốt nhất bằng cách sử dụng một 'giải nén 'khác – Borodin