How can I split a string into chunks of two characters each in Perl?

后端 未结 4 1342
暖寄归人
暖寄归人 2020-12-05 02:36

How do I take a string in Perl and split it up into an array with entries two characters long each?

I attempted this:

@array = split(/../, $string);
         


        
4条回答
  •  鱼传尺愫
    2020-12-05 02:59

    The pattern passed to split identifies what separates that which you want. If you wanted to use split, you'd use something like

    my @pairs = split /(?(?{ pos() % 2 })(?!))/, $string;
    

    or

    my @pairs = split /(?=(?:.{2})+\z)/s, $string;
    

    Those are rather poor solutions. Better solutions include:

    my @pairs = $string =~ /..?/sg;  # Accepts odd-length strings.
    
    my @pairs = $string =~ /../sg;
    
    my @pairs = unpack '(a2)*', $string;
    

提交回复
热议问题