我现在已经在这个问题上敲了大约5个小时,我真的很沮丧,需要一些帮助.
我正在编写一个Perl脚本,用于从MySQL表中提取作业,然后执行各种数据库管理任务.当前的任务是"创建数据库".该脚本成功创建了数据库,但是当我为PHP开发人员生成配置文件时,它就会爆炸.
我认为引用和解引用变量是一个问题,但我不确定到底发生了什么.我想在这个函数调用之后,$$ result {'databaseName'}会发生一些事情.这就是我得到结果的方式:$result = $select->fetchrow_hashref()
这是我的函数调用,以及函数实现:
函数调用(第127行):
generateConfig($$result{'databaseName'}, $newPassword, "php");
Run Code Online (Sandbox Code Playgroud)
功能实现:
sub generateConfig {
my($inName) = $_[0];
my($inPass) = $_[1];
my($inExt) = $_[2];
my($goodData) = 1;
my($select) = $dbh->prepare("SELECT id FROM $databasesTableName WHERE name = '$inName'");
my($path) = $documentRoot.$inName."_config.".$inExt;
$select->execute();
if ($select->rows < 1 ) {
$goodData = 0;
}
while ( $result = $select->fetchrow_hashref() )
{
my($insert) = $dbh->do("INSERT INTO $configTableName(databaseId, username, password, path)".
"VALUES('$$result{'id'}', '$inName', '$inPass', '$path')");
}
return 1;
}
Run Code Online (Sandbox Code Playgroud)
错误:
Use of uninitialized …Run Code Online (Sandbox Code Playgroud) 为什么这样做:
$my_str=~s/://g;
Run Code Online (Sandbox Code Playgroud)
但这不是:
$my_str=~s/:://g;
Run Code Online (Sandbox Code Playgroud)
我有一个看起来像这样的字符串:::this:is:my:string我需要删除::但不要触摸:.