2013-07-21 46 views
1

我试图在Perl代码中使用html标签打印一些哈希值。但我得到的不是价值是1。当我尝试在sub内打印散列值时,会发生这种情况。这是正确的方式吗?Perl-在密钥匹配时打印哈希值

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
my $value = @_; 

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

你可以用这个来代替:

my ($value) = @_; 
+0

我总是做''我的$值= shift';''不知道这是不是虽然:) – Vorsprung

+0

翻译@mat的任何机会,给出的答案更清晰:HTTP: //stackoverflow.com/questions/17783632/oracle-11g-imp-dmp-probleme-connexion-sqldevelopper。这看起来是一个足够好的问题,但我的法语远没有你的英语好。如果你不这么认为,不要担心 – Ben

+0

@Ben:完成,但问题缺乏重要细节。 – Mat

相关问题