Aion-Format

 view release on metacpan or  search on metacpan

lib/Aion/Format/Html.pm  view on Meta::CPAN

	my $re_proposal = qr/[.?!…]/;
	my @S;			# массив открывающих тегов [tag, '<tag ...>']

	# Функция фиксирует страницу и сбрасывает счётчики
	my $make_page = sub {
		push @pages, join "", @page, map { "</$_->[0]>" } reverse @S;
		$i_page = $c = $is_proposal = 0;
		@page = map $_->[1], @S;
	};
	
	for(grep length, split m{(
		<[a-z] [^<>]* >
		| </ \s* [a-z]\w* \s* >
		| &(?: [a-z]\w* | \# \d+ | \#x[0-9a-f]+ ) ;?
		| \n 		# Абзац
		| $re_proposal+	# Предложение
		| \b		# Слово
	)}xiu, $html) {

		if(/^&/) {$c++} 	# html-символ
		elsif(/^<\/\s*([a-z]\w*)/) { # закрывающий тег

lib/Aion/Format/Url.pm  view on Meta::CPAN

		$link{pass} = $onpage{pass} if exists $onpage{pass};
		$link{domain} = $onpage{domain};
	}

	# нормализуем
	$link{proto} = lc $link{proto};
	$link{domain} = lc $link{domain};
	$link{dom} = $link{domain} =~ s/^www\.//r;
	$link{path} = lc $link{path};

	my @path = split m!/!, $link{path}; my @p;

	for my $p (@path) {
		if($p eq ".") {}
		elsif($p eq "..") {
			#@p or die "Выход за пределы пути";
			pop @p;
		}
		else { push @p, $p }
	}

t/aion/format/url.pm  view on Meta::CPAN

# 		$link{pass} = $onpage{pass} if exists $onpage{pass};
# 		$link{domain} = $onpage{domain};
# 	}
# 
# 	# нормализуем
# 	$link{proto} = lc $link{proto};
# 	$link{domain} = lc $link{domain};
# 	$link{dom} = $link{domain} =~ s/^www\.//r;
# 	$link{path} = lc $link{path};
# 
# 	my @path = split m!/!, $link{path}; my @p;
# 
# 	for my $p (@path) {
# 		if($p eq ".") {}
# 		elsif($p eq "..") {
# 			#@p or die "Выход за пределы пути";
# 			pop @p;
# 		}
# 		else { push @p, $p }
# 	}
# 



( run in 1.954 second using v1.01-cache-2.11-cpan-71847e10f99 )