如何在Perl中通过push打印变量?

wj8zmpe1  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(180)

我正在尝试制作一个数组变量,它是从Perl中的Excel文件推出来的。

my @registers=();
my $registers_num;

for (my $register_row = 0+3; $register_row < 5; $register_row++) {
    push( @registers,  $worksheet->get_cell( $register_row, 0));
}

print "register: ", $registers[0], "\n ";
$registers_num = @registers;
print "register_num:", $registers_num, "\n ";

当我执行Perl时,我得到了下面的结果。我期望打印$registers[0] = ID$registers[1] = TOPINT,但是出了问题。

register: Spreadsheet::ParseExcel::Cell=HASH(0xd021bb8)
 register_num:2
chhqkbe1

chhqkbe11#

假设您使用的是Spreadsheet::ParseExcel,就像在previous question中一样,get_cell方法会传回Cell对象,而不是储存格中的值。若要存取储存格的值,您应该使用Cell对象的value方法:

for (my $register_row = 0+3; $register_row < 5; $register_row++) {
    my $name = $worksheet->get_cell($register_row, 0);
    push( @registers,  $name->value() );
}

它只存储@registers数组中的单元值(“寄存器名称”)。

相关问题