h******y 发帖数: 173 | 1 一个哈希数组,在程序运行中自动创建:
$a{b}
其中的a和b希望从别的变量的值中得到,比如当$c="china", $d="heilongjiang"时,
我的这个$a{b}就时$china{heilongjiang}。
我实在是查不到了,教程上没有。老大们请帮忙,谢谢。 | s***e 发帖数: 793 | 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}。 : 我实在是查不到了,教程上没有。老大们请帮忙,谢谢。
| h******y 发帖数: 173 | 3 谢谢,的确$b可以,教程上也有,就是那个a不行,加引号圆括号花括号都不行。
我是个新手,指针还没学呢:) | s***e 发帖数: 793 | 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不行,加引号圆括号花括号都不行。 : 我是个新手,指针还没学呢:)
| h******y 发帖数: 173 | | h******y 发帖数: 173 | 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
| s***e 发帖数: 793 | 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",
|
|