1

我正在尝试使用 Perl 代码中的 html 标签打印一些哈希值。但我得到的不是价值观,而是1. 当我尝试在内部打印哈希值时会发生这种情况sub。这是正确的方法吗?

package shembull;

%rhash= (
    lbl_name  =>  "L",
    lbl_surname =>  "G",
    txt_nameemri    =>  "N",
    txt_surname =>  "M",
    btn_submit  =>  "submit",
);

sub lbl_input {
my $value = @_;
return "<label>".$value."</label>";
}

sub txt_input {
my $value = @_;
return "<textarea>".$value."</textarea>";
}

sub btn_input {
my $value = @_;
return"<button>".$value."</button>";
}

foreach my $tmp (keys %rhash){
    if($tmp =~/lbl/){
        print lbl_input ($rhash{$tmp});
    }
    elsif($tmp =~/txt/){
        print txt_input ($rhash{$tmp});
    }
    elsif($tmp =~/btn/){
        print btn_input ($rhash{$tmp});
    }
}

可能是什么原因?谢谢 !

4

2 回答 2

4
my $value = @_;

这将放入元素的数量@_-$value在标量上下文中评估列表返回其元素数量。

您可以改用它:

my ($value) = @_;
于 2013-07-21T16:05:29.367 回答
0

可能是我的 $value=shift;

@_ 在上下文标量中返回 @_ 包含的项目或元素的数量。

这里有一个参考: http: //perlmaven.com/scalar-and-list-context-in-perl

于 2013-07-21T21:16:45.087 回答