Perl楽しいから好き

Perlをはじめとしたプログラミング周りのあれこれについて。モダーンなPerlを楽しんでいます。

Perlで複数行のマッチをやってみたよ

複数行のマッチとかできたら幸せになれるのに・・・

って思いながら結城浩さんの『Perl言語プログラミングレッスン』を読んでたら

できました。

#!/usr/bin/perl
# 
# 複数行の置き換えを行うスクリプト
# 2011.10.29_scripted by perl48

use strict;
use warnings;

my $multiple_data;

foreach my $data (<DATA>) {
    $multiple_data .= $data
}

#print $multiple_data;

# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">.<?php  をマッチさせる
# htmlはスラッシュが多いので、m#pattern#s という感じでデリミタを # にしてみる
# 改行一文字を . で表すための修飾子 /s をつける
if ($multiple_data =~ m#<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">.<\?php#s ){

    print $&;
}

__DATA__
<?
//絵文字
include_once 'include/commons.php';
//ヘッダ情報
include_once 'include/content_type.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php include ('include/analytics.php'); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php include ('include/head.php'); ?>
</head>