mars_unique
@mars_unique
#!/bin/sh

[Решено] Как создать комбинированную ссылку на функцию?

Дано:

#опеределенная функция вызывает потоки и передает им ссылки
sub prs {
 ...
thr (@links);
}
#Тут то и вопрос как создать ссылку на функцию thr_prs, зная что нас вызывает функция prs ?
sub thr {
	 #Вот я вызвал имя калера
   my $d = (caller(1))[3];
   $d =~ s/Some_lib:://g;
	 #как можно сделать составную ссылку на функцию типа	 
         # my $fu = '\&thr'."$d";
   Thread->new( \&rty, ($n, \&thr_prs));
}

sub rty {
    my ($url, $hash) = shift;
		my $ba = Mojo::UserAgent->new();
		my $res = $ua->max_redirects(5)->get($url);
    $hash->( $res ); 
}

sub thr_prs{
		my @hash = @_;
		foreach (@hash){
		my $dom = Mojo::DOM->new( decode('utf8', $_->res->body ) );
		};
}

Вот собственно и вопрос, как можно создавать комбинированную ссылку исходя из имени вызывающей функции, еще раз если вызввает data передавать ссылку на \&thr_data, если katya то на \&thr_katya и т.д.
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
mars_unique
@mars_unique Автор вопроса
#!/bin/sh
my $thr = \&{"thr_$d"};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы