Perl получает сайт реферера

Мне нужна помощь, чтобы получить сайты, с которых я получил реферер

my $refer = $ENV{HTTP_REFERER}; = google.com/sdaasd
my $website = dont know what how; = google.com 
if ($website eq google.com || $website eq yahoo.com) { do this } 
else 
{ do that }

(веб-сайт www.google.com)

Все, что я хочу получить, это просто www.google.com, а не вся ссылка google.com/sdadgasyd

2 ответа

Итак, вы хотите извлечь часть URI?

Начните с поиска этого на CPAN. Это приводит к URI модуль и его документация.

Документация показывает, как создать экземпляр с URI в строке (который у вас есть), и указывает на host метод, который будет извлекать его из URI.

#!/usr/bin/env perl

use v5.16;
use strict;
use warnings;
use URI;

my $uri = URI->new('http://google.com/sdaasd');
say $uri->host;

Очевидно, вы не получите www.google.com когда вход google.com потому что они разные имена хостов.

Попробуй это

my $refer = $ENV{HTTP_REFERER};

if(index($refer, "google.com") || index($refer, "yahoo.com") {
  #do this
} else {
  #do that 
}
Другие вопросы по тегам