2016-08-18 10 views
0

問題の説明: xmlファイルがあり、その内容が変数にコピーされてHTTPメッセージを渡しました。 HTTPメッセージを受け取ったら、ファイルにコピーしようとしましたが、動作していないようです。xmlデータを文字列からファイルに取り出す/コピーできません

Iは

if(-f $xml_file) { 
      open (FH, "< $xml_file") || die "error", "Can't open schema file $xml_file:$!"; 
      while(<FH>) { $xml_content .= $_ . "\\n"; } 
      close(FH); 
     } 

下に行っていると私はHTML_HEADERに$のxml_contentを割り当て - > { 'xml_content'} iが定義。

は、私はそれが動作しません

my $xml_data = html_header->{'xml_content'}; 
    my $file_xml; 
    write_file('$file_xml', $xml_data); 

使用してファイルに戻ってコンテンツをコピーしようとしました。
$ file_xmlを後で使用するために特定の場所にコピーしたいとします。

AMここで何か間違っている。 File :: Slurp qw(write_file)のwrite_file機能の理解が間違っています。

誰かが間違いを指摘することができます...私は他の方法でもやろうとしました...しかしそれは動作しません。

+3

"動作しません"とはどういう意味ですか?また、なぜ '\\ n'を各行に(なぜなら改行の後に)追加していますか? – choroba

+0

$ xml_dataを$ file_xmlに書き込んでいません。私は文字列としてコンテンツをコピーしている...私は最後に\ nを追加すると、行間を区別するのに役立つと思った...私が読むとき。 –

+0

後で$ file_xmlを使用すると「初期化されていない値$ file_xmlを使用」というエラーが表示されます。 –

答えて

1
write_file('$file_xml', $xml_data); 

変数は一重引用符で囲まれません。これにより、名前が$file_xmlのファイルが作成されます。あなたはおそらく意味すると思います:

write_file($file_xml, $xml_data); # No quotes needed. 
+0

あなたのご意見をお寄せいただきありがとうございます。構文はwrite_file( "$ file_xml"、$ xml_data)です。一重引用符を指摘したときに気づいた。 –

+0

いいえ。構文は(私の答えで書いたように) 'write_file($ file_xml、$ xml_data)'です。確かにあなたのバージョンも動作しますが、 '$ xml_file'の周りに無意味な引用符があるのはなぜですか? –

関連する問題