此代码为我提供了一个全局符号,需要明确的软件包名称错误。第二次定义$用户,它将其扔掉。在代码下方是错误。我不明白$用户背后的原因。我正在尝试添加返回的哈希。
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'}。$用户在这里被用作参考。