dalian_gq 发表于 2017-07-04 13:50

求助,根据需要返回指定数组内容应该怎么写?

#!/usr/bin/perl

use strict;
use warnings;

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

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


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


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

A1
KQ1   KH1   KL1
********************************************************************************
F4
HH1   FF1   TT2
********************************************************************************

quanpai 发表于 2017-07-04 14:01

建议使用哈希结构

#!/usr/bin/perl

use strict;
use warnings;


my %h = (
'A1' => ['KQ1','KH1','KL1'],
'A2' => ['KQ1','KH1','KL2'],
'F4' => ['HH1','FF1','TT2'],
);

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

foreach my $key (@input){
print $key,"\n";
print join "\t",@{$h{$key}},"\n";
print '*'x80,"\n";
}

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哈希呗
页: [1]
查看完整版本: 求助,根据需要返回指定数组内容应该怎么写?