微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Perl的Data :: Dumper显示对象而不是值

foreach my $row (1..$end) 
 { 
  foreach my $col (3..27 ) 
  { 
    # skip empty cells 
    next unless defined 
    $worksheet->Cells($row,$col)->{'Value'}; 

    # print out the contents of a cell  
    $var = $worksheet->Cells($row,$col)->{'Value'};     
    push @dates,$var;  

    print $var; #this prints the value just fine
  } 
 }  

my %hash;
$hash{'first'} = \@dates;
print Dumper \%hash; #This prints object information

我使用模块OLE for Perl和我从工作表中获得的每个值并打印$var然后我得到了预期的值,但是当我把所有内容放入哈希时它打印:

'first' => [
bless( do{\(my $o = 15375916)},'OLE::Variant'),bless( do{\(my $o = 15372208)},

等等.我一定不明白哈希的事情,因为我真的很难过.

解决方法

push @dates,$var将OLE :: Variant对象推送到@dates数组,而print $var调用隐式OLE :: Variant方法将对象转换为字符串.

如果你还想让@dates只包含底层字符串值而不是对象本身,比如说

push @dates,"$var";

在将日期对象放入@dates数组之前将其字符串化.

原文地址:https://www.jb51.cc/Perl/171598.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐