【发布时间】:2014-10-17 22:11:44
【问题描述】:
我有一组数据要处理。
为了简化我的代码,最好通过指向原始数据的引用数组来访问我的一些数据子集。
比解释更好,我写下了这个例子(它还没有工作)。最后,我想更新原始数据而不必更新所有子集。
可以用 Perl 做这样的事情吗?
#!/usr/bin/env perl
use strict;
use warnings;
# A set of data
my $design = {
box => {
ne => {data => 'north-east'},
nw => {data => 'north-west'},
n => {data => 'north'},
s => {data => 'south'},
e => {data => 'east'},
w => {data => 'west'},
se => {data => 'south-east'},
sw => {data => 'south-west'}
}
};
# Select a design
my $selected = 'box';
# Build some arrays
my $d = $design->{$selected};
my @eastside = (\$d->{e}, \$d->{ne}, \$d->{se});
my @westside = (\$d->{w}, \$d->{nw}, \$d->{sw});
my @northside = (\$d->{n}, \$d->{ne}, \$d->{nw});
# Update one data
$d->{ne}->{data} .= " updated!";
# Display
print join '', "Composed of:\n", map("\t".$_->{data}."\n", @eastside);
脚本应该输出:
Composed of:
east
north-east updated!
south-east
【问题讨论】: