小编djs*_*rtz的帖子

传递给子例程时Perl引用和引用哈希值?

我现在已经在这个问题上敲了大约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)

perl hash reference subroutine dereference

5
推荐指数
1
解决办法
976
查看次数

Perl正则表达式取代?

为什么这样做:

$my_str=~s/://g;
Run Code Online (Sandbox Code Playgroud)

但这不是:

$my_str=~s/:://g;
Run Code Online (Sandbox Code Playgroud)

我有一个看起来像这样的字符串:::this:is:my:string我需要删除::但不要触摸:.

regex perl

-1
推荐指数
2
解决办法
2万
查看次数

标签 统计

perl ×2

dereference ×1

hash ×1

reference ×1

regex ×1

subroutine ×1