C:\Users\tblaz\Documents\evelyn\tja\1.betsy>perl 1.betsy1.pl ... execution was here $VAR1 = bless( { 'my_sftp' => { 'password' => 'z', 'username' => 'y', 'domain' => 'x', 'port' => '22' } }, 'Config::Tiny' ); values are x y z 22 password authentication not available, IO::Pty is not installed or failed to load: Can't locate IO/Pty.pm in @INC (you may need to install the IO::Pty module) (@INC contains: template_stuff C:\Users\tblaz\perl5\lib\perl5/5.30.0/MSWin32-x64-multi-thread C:\Users\tblaz\perl5\lib\perl5/5.30.0 C:\Users\tblaz\perl5\lib\perl5/MSWin32-x64-multi-thread C:\Users\tblaz\perl5\lib\perl5 C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at C:\Users\tblaz\perl5\lib\perl5/Net/SFTP/Foreign/Backend/Unix.pm line 256. at template_stuff/trans1.pm line 100. C:\Users\tblaz\Documents\evelyn\tja\1.betsy> #### sub get_tiny { use 5.011; use warnings; use Net::SFTP::Foreign; use Config::Tiny; use Data::Dumper; my $ini_path = qw( C:\Users\tblaz\Documents\html_template_data\4.values.ini ); say "ini path is $ini_path"; say "execution was here"; my $sub_hash = "my_sftp"; my $Config = Config::Tiny->new; $Config = Config::Tiny->read( $ini_path, 'utf8' ); say Dumper $Config; # -> is optional between brackets my $domain = $Config->{$sub_hash}{'domain'}; my $username = $Config->{$sub_hash}{'username'}; my $password = $Config->{$sub_hash}{'password'}; my $port = $Config->{$sub_hash}{'port'}; #dial up the server say "values are $domain $username $password $port"; my $sftp = Net::SFTP::Foreign->new( $domain, more => '-v', user => $username, port => $port, password => $password ) or die "Can't connect: $!\n"; return $sftp; }