Redian新闻
>
perl如何用变量的值当另一个变量的变量名
avatar
perl如何用变量的值当另一个变量的变量名# Programming - 葵花宝典
h*y
1
一个哈希数组,在程序运行中自动创建:
$a{b}
其中的a和b希望从别的变量的值中得到,比如当$c="china", $d="heilongjiang"时,
我的这个$a{b}就时$china{heilongjiang}。
我实在是查不到了,教程上没有。老大们请帮忙,谢谢。
avatar
s*e
2
for $b, it is ok, but i do not know for $a
tcl supports that, but i dont't know whether perl supports that.
but anyway, u can use two layer hash.
first hash store the pointer of the second hash

【在 h******y 的大作中提到】
: 一个哈希数组,在程序运行中自动创建:
: $a{b}
: 其中的a和b希望从别的变量的值中得到,比如当$c="china", $d="heilongjiang"时,
: 我的这个$a{b}就时$china{heilongjiang}。
: 我实在是查不到了,教程上没有。老大们请帮忙,谢谢。

avatar
h*y
3
谢谢,的确$b可以,教程上也有,就是那个a不行,加引号圆括号花括号都不行。
我是个新手,指针还没学呢:)
avatar
s*e
4
use two layer hash, it might look like this
my %a;
$a{"heilongjiang"}="haerbin";
my %b;
$b{"china"}=\%a;
print %{$b{"china"}}->{"heilongjiang"};
for reference in perl,
http://affy.blogspot.com/p5be/ch08.htm

【在 h******y 的大作中提到】
: 谢谢,的确$b可以,教程上也有,就是那个a不行,加引号圆括号花括号都不行。
: 我是个新手,指针还没学呢:)

avatar
h*y
5
谢谢,学习学习。
avatar
h*y
6
今天又试验了,发现是可以的。不知道昨天是怎么回事,可能是括号加得不对。
试验的代码如下:
#!/usr/bin/perl
@name=("classmate","worker","boss");
@where=("harbin","changchun","shenyang","tianjin");
$name_number=0;
$where_number=3;
%{$name[0]}=(harbin => "zhao",
changchun => "qian",
shenyang => "sun",
);
print "$classmate{$where[1]}\n";
print "${$name[0]}{shenyang}\n";
${$name[$name_number]}{$where[$where_number]}="li";
print "${$name[$name_number]}{$where[$where_number]}\n";

【在 s***e 的大作中提到】
: use two layer hash, it might look like this
: my %a;
: $a{"heilongjiang"}="haerbin";
: my %b;
: $b{"china"}=\%a;
: print %{$b{"china"}}->{"heilongjiang"};
: for reference in perl,
: http://affy.blogspot.com/p5be/ch08.htm

avatar
s*e
7
nice

【在 h******y 的大作中提到】
: 今天又试验了,发现是可以的。不知道昨天是怎么回事,可能是括号加得不对。
: 试验的代码如下:
: #!/usr/bin/perl
: @name=("classmate","worker","boss");
: @where=("harbin","changchun","shenyang","tianjin");
: $name_number=0;
: $where_number=3;
: %{$name[0]}=(harbin => "zhao",
: changchun => "qian",
: shenyang => "sun",

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。