请帮助解决我的问题:
我正在使用perl v5编写简单的报告。
use POSIX qw(strftime);
my $bkpTrigDate = strftime "%m/%d/%Y", localtime;
my $date = strftime "%a %b %e %H:%M:%S %Y", localtime;
$logfile = "./logFormatted";
format STDOUT_TOP =
@|||||||||||||||||||||||||||||||| @<<<<<<<<<<<<<
"Servers backup triggered at: ", $bkpTrigDate
================================================
| DB SERVER NAME | DB HOSTED ON |
+--------------------+--------------------------+
.
format =
@|||||||||||||||||||| @|||||||||||||||||||||||||| @||||||||||||||||||||||||||
$dbSrv, $ipName, $dbinstance
@|||||||||||||||||||||||||| @||||||||||||||||||||||||||
$start, $end
+--------------------+--------------------------+
.
#selecting list of servers for backup
$str = "select
**********";
$res0 = $conn->exec($str);
if ($res0->resultStatus>5) { die error("0 query failed: $str")}
while (@row0 = $res0->fetchrow)
{
if (!$row0[0]) { next;}
$dbsname = $row0[0];
$sid = $row0[2];
$ip = $row0[1];
$ipName = $ip;
$dbSrv = $dbsname;
if (($mylogin{$dbsname}) && ($mypasswd{$dbsname}))
{
#my backup
$dir = $bdir.'mysql/';
if (!(-d $dir)) { mkdir($dir);}
$str = "*****";
$res = $conn->exec($str);
if ($res->resultStatus>5) { die error("query failed: $str")}
while (@row = $res->fetchrow)
{
$db = $row[0];
$dbinstance = $db ;
$start = $date;
$backup_str = "mysqldump -h $ip --add-drop-table -u ".$mylogin{$dbsname}." -p".$mypasswd{$dbsname}." $db $destination_str";
$end = $date;
@my_tmp_strs = get_str($backup_str);
sleep(2);
}
}
else { $my_output .= "No access data for $dbsname!!!\n";}
write;
}
我失去了$dbinstance
个名字(这并不奇怪!)&gt;当我发出写入时,我的$dbinstance
包含$dbinstance
的最新值。如何从两个循环写入格式化文件?
答案 0 :(得分:0)
谢谢!问题解决了!代码中没有任何错误