CGI-BBS > CGI > Perl > Perlについてhtml内の文字を置換して表示したい。


カレッヂ
カレッヂ


質問者 matsu  投稿日 2006/1/31(火) 20:58:50
matsuと申します。
OS:redhat7.2
perl:5.6.0-17
クライアントOS:Win XP IE6

----test.html----
<html>
<head>
<title>$HEADLINE</title>
<meta http-equiv=content-type content="text/html; charset=x-euc-jp">
</head>
<body>
</body>
</html>

----test.cgi----
#!/usr/bin/perl

print "Content-type: text/html"."\n\n";

open(TEMPLATE, "/xxx/xxx/xxx/test.html") or die "can't open test.html: $!";

$headline = 'あああああ';

------------------ (1) ----------------------
while(<TEMPLATE>)
{
	$temp = $_;
	$temp = ~s/\$HEADLINE/$headline/g;
	print $temp;
}
----------------------------------------------	
close(TEMPLATE);

を作成しtest.cgiを実行すると、
42949672954294967295429496729442949672954294967295429496729542949672954294967295
が表示されるだけです。
(1)の箇所を
while(<TEMPLATE>)
{
	$temp = $_;
	# $temp = ~s/\$HEADLINE/$headline/g;
	print $temp;
}
とすると、test.htmlが正しく表示されます。
test.htmlの内容そのものは変更したくありません。
$HEADLINE部を'あああああ'に置換しtest.htmlを表示したいです。
置換部に問題があると思うのですが、何分始めたばかりなので
解決法が見つかりません。

よろしくお願いします。

【習熟度】初めて

質問者 matsu  [削除]  投稿日 2006/2/1(水) 10:44:01
自己レスです。

単純ミスでした。
= ~s///が
=~ s///でした。

申し訳ありませんでした。

このページは終了したので返信(回答)は書きこめません
 


Web裏技