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

时间:2017-06-15 19:38:51

标签: arrays perl server hashmap

我正在使用在服务器(SellerDeck)上运行的第三方购物车解决方案。我有一些代码在服务器上运行,以使用基本产品数据(数量,价格,名称)格式化购物篮。我需要找到一些我认为在2个哈希数组中保存的数据。我不知道这2个数组中包含了什么,所以我想将数组转换为字符串并通过现有代码输出,将其放入客户端的cookie中,然后我可以查看。 2个数组是$ 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))

但是此更改会导致代码在运行时崩溃。

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

非常感谢Tony

相关代码是:

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;
    }

1 个答案:

答案 0 :(得分:3)

要获取数据结构的转储,您可以使用Data::Dumper

我按如下方式使用它:

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。

相关问题