2016-04-22 22 views
-5

HTTP POSTのJSON Bodyを80文字の二重引用符で囲んだ文字列に分割する必要がありますが、最初の80文字を読み込むときはいつでも、ソース文字列の文字列ポインタ(CR/LFまだ各行の終わりに区切られています)決して変化しません。下のループは同じ文字列を何度も何度も読んでいます - 私は、アンパックがCR/LFが前もって存在することを期待していますか?そうでない場合、私は何をしますか?Perlの展開方法を教えてください。

my $n = 80; # $n is group size. 
my @groups = unpack "a$n" x (length($body) /$n), $body; 

# print @groups; 
foreach $line (@groups) { 
    print '"'.$line.'"' ; 
} 
+0

を期待する結果どこ記述する必要がありますか?サンプル入力としてリンクを提供する必要があり、実際に動作するコードをテストできるようにする必要があります。あなたは 'use strict;'と 'use warnings;'を有効にしていますか? – stevieb

+0

あなたがしようとしていることは本当に不明です。とにかく、 'unpack'に関連する"文字列ポインタ "はありません。 (おそらく、正規表現でのみ使用される 'pos'について考えているかもしれません) – cjm

+0

JSONを解析する場合は、[適切なJSONパーサ](https://metacpan.org/pod/)を使用してください。 JSON)。それがあなたがやろうとしていることでないならば、あなたの質問を明確にするためにあなたの質問を編集するべきです。今はかなり不明です。 – ThisSuitIsBlackNot

答えて

-2

は、私は問題を解決した方法ですあなたの質問これはこれが良いかもしれないようです。

my @groups = unpack '(A80)*', $body; 

しかし、あなたは本当に$bodyから来て、何を `@のbody`から来ている

+1

これはあなたの質問に対する答えではありません – Borodin

1

それはあなたの状況を理解することは本当に難しいですが、あなたはこの

my @groups = unpack '(a80)*', $body; 

からを必要とするように、独自の「解答」からそれが見えます:ここでは

@row =unpack 'A80', $body; 
foreach $line (@body) 
{ 
    @row =unpack 'A80', $body; 
    print '"'.$line.'"' ; 
} 
関連する問題