Chinaunix

标题: 求助,根据需要返回指定数组内容应该怎么写? [打印本页]

作者: dalian_gq    时间: 2017-07-04 13:50
标题: 求助,根据需要返回指定数组内容应该怎么写?
  1. #!/usr/bin/perl

  2. use strict;
  3. use warnings;

  4. my @SS_A1 = ('KQ1','KH1','KL1');
  5. my @SS_A2 = ('KQ1','KH1','KL2');
  6. my @SS_F4 = ('HH1','FF1','TT2');
  7. #等等,赋值语句还有很多。

  8. my @input = ('A1','F4');


  9. foreach my $key (@input){
  10.   print $key,"\n";
  11.   print join "\t",@SS_{$key},"\n";   # 这个不对,但这行要怎么写?
  12.   print '*'x80,"\n";
  13. }


  14. 怎样才能得到下面这个结果?

  15. A1
  16. KQ1     KH1     KL1
  17. ********************************************************************************
  18. F4
  19. HH1     FF1     TT2
  20. ********************************************************************************
复制代码


作者: quanpai    时间: 2017-07-04 14:01
建议使用哈希结构

  1. #!/usr/bin/perl

  2. use strict;
  3. use warnings;


  4. my %h = (
  5.   'A1' => ['KQ1','KH1','KL1'],
  6.   'A2' => ['KQ1','KH1','KL2'],
  7.   'F4' => ['HH1','FF1','TT2'],
  8. );

  9. my @input = ('A1', 'F4');

  10. foreach my $key (@input){
  11.   print $key,"\n";
  12.   print join "\t",@{$h{$key}},"\n";
  13.   print '*'x80,"\n";
  14. }
复制代码

作者: dalian_gq    时间: 2017-07-04 14:45
回复 2# quanpai

十分感谢,是因为Perl的数组不能这么用,只能用hash吗?
作者: jason680    时间: 2017-07-04 16:07
回复 3# dalian_gq

简单的说......

给“数值” 得结果, 可用array(数组)或hash(哈希)

给"字符串" 得结果, 用hash(哈希)

你说你想怎么用
给(字符串)"王大明"就知(结果)"电话是138...." 那就是hash哈希呗




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2