$all_ap{$_}->{'webloginpostdata'} = { 'var:main' => 'menu', 'testwebcm' => 'webcm', 'login:command/username' => '', 'login:command/password' => '', 'var:connecting1' => '0' }; #### $all_ap{$_}->{'webadminpostdata'} = { 'var:main' => 'menu', 'var:style' => 'style5', 'settings/username' => $all_ap{$_}->{'webuser'}, 'settings/password' => $all_ap{$_}->{'webpass'}, 'settings/password_confirm' => $all_ap{$_}->{'webpass'}, 'settings/idle_timeout' => '30' }; #### my $login_status = loginweb($all_ap{$_}->{'webloginurl'}, $all_ap{$_}->{'webloginpostdata'}); if ($login_status eq 'success'){ ## Call next subroutine my $setpassword = changewebpass($all_ap{$_}->{'webadminurl'}, $all_ap{$_}->{'webadminpostdata'}); if ($setpassword ne 'success'){ print "Can\'t change password\n"; }else{ print "New login created:\n\t username: $all_ap{$_}->{'webuser'} \n\t password: $all_ap{$_}->{'webpass'}\n"; } #### sub loginweb{ my $url = shift; my $postdata = shift; my $username; my $password; open PASSLIST, "appasswd.txt" or die $!; while (){ $username = (split / === /, $_)[0]; $password = (split / === /, $_)[1]; chomp ($username, $password); print "\nTrying username: \'$username\' password: \'$password\'"; $$postdata{'login:command/username'} = ($username eq '')?'':$username; $$postdata{'login:command/password'} = ($password eq '')?'':$password; my $res = $ua->request(POST $url, $postdata); if ($res->content =~ /Basic\s+Home\s+Menu/){ print " SUCCESS!!!\n"; return 'success'; }else{ next; } } #### sub changewebpass{ my $url = shift; my $postdata = shift; my $res = $ua->request(POST $url, $postdata); if ($res->is_success){ return 'success'; }else{ return 'failed'; } } #### my %webloginpostdata = (...); my %webadminpostdata = (...); loginweb(\%webloginpostdata)