Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > подпрограммы


Автор: GR0Mi 1.12.2010, 19:39
как использовать переменую из другой под программы?
пример конструкции

Код

sub main
{
print $cki3;
}
sub link
{
my $resp = $ua->get("http://www.google.com/")->as_string; 

my ($cki3) = $resp =~ /challenge : '(.*)'/;
}


выдает ошибку 
Global symbol requires explicit package name

мне нужно вывести в переменую $cki в sub main

Автор: ginnie 1.12.2010, 19:58
GR0Mi,  можно сделать так:

Код

my $cki3;
sub main
{
print $cki3;
}
sub link
{
my $resp = $ua->get("http://www.google.com/")->as_string; 

($cki3) = $resp =~ /challenge : '(.*)'/;
}


но я стараюсь так не делать, передаю нужные данные в виде аргументов

Код

sub main {
    my $value = shift;
    print $value;
}
sub link {
    my $resp = $ua->get("http://www.google.com/")->as_string; 
    my ($cki3) = $resp =~ /challenge : '(.*)'/;
    return $cki3;
}

my $result = link();
main($result);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)