全局符号需要明确的软件包名称perl



此代码为我提供了一个全局符号,需要明确的软件包名称错误。第二次定义$用户,它将其扔掉。在代码下方是错误。我不明白$用户背后的原因。我正在尝试添加返回的哈希。

my $self     = shift;
my %json     = ('err' => 0, 'msg' => '');
my $user     = Order2016::get_orders($self->usernum); # Returns Hash
# Query to grab session history data
my $sql     = "select rate.duration, rate.price, rate.description, rate.active, order.user_id, order.quantity, order.add_date, order.modify_date, order.end_date, order.last_bill, order.next_bill, item.*
            from rate, order, item
            where order.user_id = ?
            and order.rate_id = rate.id
            and rate.item_id = item.id";
my $query   = new SQL($sql, $self->usernum);
my $hist    = $query->GetRecordsAsHashRef();
$user{'uid'} = $self->usernum;
$self->Print(to_json($user));

全局符号"%user"需要/deproot/depot/wxtap/deploy/scripts/scripts//account.pm行1340。汇编失败了,请访问/usr/lib/perl5/apache2/porting.pm第90行。

我怀疑 $user是哈希参考,而不是哈希。要使用它,您需要首先将其解释(使用->操作员):

$user->{uid} = $self->usernum;

这也可以写为:

$$user{uid} = ...;

...但这远不那么普遍了,使用以前的方法更加惯用。

请尝试$ user-> {'uid'}。$用户在这里被用作参考。

最新更新