找出哈希数组中的内容(在服务器上)



我正在使用在服务器(SellerDeck)上运行的第三方购物车解决方案。我有一些在服务器上运行的代码,用于使用基本产品数据(数量、价格、名称)格式化购物篮。我需要找到更多我认为保存在 2 个哈希数组中的数据。我不知道这两个数组中包含什么,所以我想将数组转换为字符串并通过现有代码输出,该代码将其放在客户端上的 cookie 中,然后我可以查看。这两个数组是$pCartItem和$pProduct(有关如何使用它们,请参阅底部的代码)。

字符串$cartStr(代码底部)由代码的另一部分以 cookie 的形式输出到客户端。

我想将 2 个数组隐藏为 2 个字符串,这些字符串可以连接到$cartStr。然后,我可以读取本地电脑(客户端)上的内容。我的问题是我对perl非常不熟悉,并且知道如何进行转换。

我尝试添加:

my $MiniCrtS=" ";
my $MiniCartElmt;
foreach $MiniCartElmt (@{$pProduct}) {
$MiniCrtS=$MiniCrtS . $MiniCartElmt;
}

然后将$cartStr从:

HTML::Entities::encode(substr($pProduct->{'NAME'},0,$abrv)) 

自:

HTML::Entities::encode(substr($MiniCrtS,0,$abrv))

但此更改会使代码在运行时崩溃。

关于我做错了什么的任何想法或找出数组中数据的替代方案?

非常感谢托尼

相关代码为:

sub miniCart
{
use HTML::Entities ();
my $Self = shift;
my $abrv=12;                                    # number of characters to abbreviate item name
my $defaultCur="£";                             # currency symbol to include
my $cartStr="ss=" . $::g_sSearchScript . "cur=" . $defaultCur;
my $pCartItem;
foreach $pCartItem (@{$Self->{_CartList}})
{
my ($Status, $Message, $pProduct) = GetProduct($pCartItem->{'PRODUCT_REFERENCE'}, $pCartItem->{'SID'});
if ($Status == $::FAILURE)
{
return ($Status, $Message, []);
}
elsif ($Status == $::NOTFOUND)
{
next;
}
my @Prices = $Self->GetCartItemPrice($pCartItem);
$cartStr=$cartStr . "&!" . $pCartItem->{'QUANTITY'} . "x" . HTML::Entities::encode($pCartItem->{'PRODUCT_REFERENCE'}) . ">" . HTML::Entities::encode(substr($pProduct->{'NAME'},0,$abrv)) . ">" . $Prices[2]/100;
}
return $cartStr;
}

若要获取数据结构的转储,可以使用 Data::D umper。

我会按如下方式使用它:

use Data::Dumper qw( );
sub dumper {
local $Data::Dumper::Indent   = 0;
local $Data::Dumper::Sortkeys = 1;
local $Data::Dumper::Terse    = 1;
local $Data::Dumper::Useqq    = 1;
return Data::Dumper::Dumper($_[0]);
}
warn("pProduct: " . dumper($pProduct));

这会将其生成的字符串记录到 Web 服务器的错误日志中,但如果这是您真正想要的,您也可以将其返回到 cookie 中。

最新更新