[Edit][Create New]
[ IndexPage / ネットとプログラミング / CGI / 便利なスクリプト片(未整理) / tail.pl ]

tail.pl

#!/usr/local/bin/perl

# 10行取り出す
$tail = 10;

$bufsize = 1024; # バッファサイズ。ここの値は適当に変える

sub tail{
	$buf = "";
	open(FILE,$ARGV[0]) || die;
	$size = -s FILE || exit; # ファイルサイズ取得。
	# $pos: FileSizeをBufferSizeで割った値の小数点以下を切り上げた数
	$pos = int($size / $bufsize) + ($size % $bufsize > 0);

	while($pos--){
			seek(FILE, $bufsize * $pos, 0);
			read(FILE, $_, $bufsize);
			$buf = "$_$buf";
			last if (($buf =~ tr/\n/\n/) > 10);
	}
	close(FILE);

	$buf =~ s/[^\n]*\n// while (($buf =~ tr/\n/\n/) > 10);
	print $buf;
}