プロが教える店舗&オフィスのセキュリティ対策術

LWP::UserAgentでperlスクリプトから別のスクリプトを呼び出して
my $val print $res->as_string;
で目的の値を取得したんですが値の前半部分にhttpヘッダーが入っており
これを撮り省きたいです。
データの内容はバイナリなので$valの中の改行コードを区切り文字として
配列に格納し末尾の配列の値だけ取りだそうと思っています。

それで指定した区切り文字で配列に格納する方法を調べたのですが
よくわからず教えていただけないでしょうか?

phpでいうところのexplode関数みたいなことがやりたいです。

A 回答 (2件)

例文のスクリプトが文法的に変なので、方法だけ書きます。



(split /\x0d\x0a/, $res->as_string)[-1]
とすれば、おっしゃるものは取得できます。

ですが、リクエストボディに改行コードを含んでいた場合は意図せぬ結果になることでしょう。
バイナリデータだから改行コードが存在しない、というのは特殊な場合であって、一般的ではないです。

リクエストボディだけを取り出したいということであれば、普通は
$res->content
の方を使います。
    • good
    • 0
この回答へのお礼

>文法が・・・
すいません仰るとおりです。あせって書いたら=が抜けてしまいました。

>バイナリデータだから
まさにそれを心配していました。
ずばり質問の意図を読み取って的確な回答をしていただき感謝します。

ありがとうございました。

お礼日時:2012/04/06 17:36

split?

    • good
    • 0
この回答へのお礼

関数としてはまさにこれですね。ありがとうございます。別の機会に使わせていただきます。

お礼日時:2012/04/06 17:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!