HTMLのタグでないところだけ置換をさせたい

これもなかなか厄介者です。
正規表現で一気にやってしまおうと思うとハマってしまうので、


	#!/usr/local/bin/perl4

	$comment = ここに変換したいテキストを代入;

	while($comment =~ /([^>]*>)/g){
		$_ = $1;
		# ここで、$textにタグ以外の部分、$tagにタグが入る。
		($text,$tag) = /^([^<]*)(<(.|\n)*)$/ ;
		# $_にタグが含まれなかった場合は$_の内容全てを$textに代入
		$text = $_ if($text eq '' && $tag eq '');
		# 変換
		push(@result, $text, $tag);
	}

	$comment = join("",@result);

	# 解放
	undef @result;
	print $comment;

ここの$commentの部分にHTMLドキュメントをいれてやります。
で、# 変換の行に来ると、$textにタグで囲まれていない部分が入りますので、
好きなように置換をかけてやればよいでしょう。$tagにはタグの部分が入り
ますが、タグの終了記号[>]はいっていませんので注意が必要です。

ファイルや標準入力から読み込む場合は、$/を[>]にしてやってwhile(<>)で
回したほうがメモリの節約になるでしょう。

例:
	open(FILE, $file);
	
	$/ = '>';

	while(<FILE>){
		($text,$tag) = /^([^<]*)(<(.|\n)*)$/ ;
		# $_にタグが含まれなかった場合は$_の内容全てを$textに代入
		$text = $_ if($text eq '' && $tag eq '');
		# 変換
		push(@result, $text, $tag);
	}
	close(FILE);
	$comment = join("",@result);

	# 解放
	undef @result;
	print $comment;