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


Автор: trinitr0 21.2.2018, 11:03
Здравствуйте!

Каким образом в perl можно передать значение переменной из основного модуля в подключаемый?

Пробовал так (нужно передать значение переменной $ip в модуль getlib):

main.pl
Код

use getlib;
use strict;
...
while (@row = $sth -> fetchrow_array())
{    
  $ip = $row[0]; 
  
  foreach $ip(@row)
  {
    print "$ip - OK!, then $ip to continue...\n";
    getconf();                 
    }
}
getlib:


getlib.pm
Код

package getlib;
use Exporter 'import';
our @EXPORT_OK = /getconf/;

sub getconf {
  ...    
  $telnet -> open($::ip); #connect to switch
  ...
}
1;
  smile 

Автор: arto 21.2.2018, 17:13
getconf($ip)

sub getconf($) { $telnet->open($_[0]) }

Автор: trinitr0 22.2.2018, 10:03
Если так:

Код

use getlib;
use strict;
...
while (@row = $sth -> fetchrow_array())
{    
  $ip = $row[0]; 
  
  foreach $ip(@row)
  {
    print "$ip - OK!, then $ip to continue...\n";
    getconf($ip);                 
    }
}


Код

package getlib;
use Exporter 'import';
our @EXPORT_OK = /getconf/;
sub getconf($ip) {
  ...    
  $telnet -> open($_[0]); #connect to switch
  ...
}
1;


То: 
Undefined subroutine &main::getconf called at main.pl line...

Автор: arto 22.2.2018, 13:28
use getlib qw( getconf );


sub getconf($) { ....



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