Но почему то проходит только 1 итерация, и скрипт не завершаеться, а дальше висит в процесах. В чем может быть причина? Спасибо.
Код: Выделить всё
use DBI;
use strict;
use warnings;
use diagnostics;
sub GenTrid {
my $i = 1;
my ($pid, $buf, $uidd, $set);
while($i <= 10) {
$buf = `cat /dev/urandom | tr -cd "[:digit:]" | head -c10`;
$set = &Test($buf);
if((substr($buf,0,1) ne 0) && !$set) {
print $i.' '.$buf."\n";
$i++;
}
else {
print "false\n";
}
}
}
sub Test {
my $buf = $_[0];
my $st;
my $Query = "SELECT `id` FROM `test` WHERE `ptrid` = '$buf' LIMIT 1";
my $dsn = "DBI:mysql:database=test;host=295.260.204.3;port=3306";
my $dbh = DBI->connect($dsn, 'tarifer', '562346') || die(DBI->errstr);
my $sth = $dbh->prepare($Query);
$sth->execute();
my @res = $sth->fetchrow_array();
(!$res[0])?($st = 0):($st = 1);
return $st;
}
&GenTrid();