perl - ファイルの先頭の文字列をチェック

 
1. ファイルの先頭の文字列をチェック

1. ファイルの先頭の文字列をチェック

 やりたかったのは、このサイトの html ファイルで、先頭行が <!DOCTYPE html> になっていないファイルがあるので、それを抽出したかっただけ・・・。

#!/usr/local/bin/perl

BEGIN
{
    use lib './';
};

use strict;
use FileList;

sub main
{
	my @argv = @_;
	my $root = $argv[0];

	my $list = FileList->new();

	my $filelist = $list->get($root, 'html');

	foreach my $name (sort(@$filelist))
	{
		my $result = check($name);

		if ($result)
		{
			print "$name \n";
		}
	}
}

sub check
{
	my $name = shift;
	my $check = undef;

	open(IN, "< $name");												#	読込オープン
	my $read = <IN>;
	close(IN);															#	クローズ

	if ($read !~ /^<!DOCTYPE html>/)
	{
		$check = 1;
	}

	return $check;
}

main(@ARGV);
 いつか機会があれば、解説を書きますが、とてもサンプルにはならないなぁ。  FileList に関しては「クラスライブラリ」をご参照ください。

> ./ソースファイル.pl ディレクトリ
 で動作します。