Javascript 到 Perl 数组/哈希转换

标签 javascript arrays perl hash

我有以下 JavaScript 代码:

    _pCombos = [
        [{row:9,col:0},{row:1,col:9},{row:1,col:2},{row:1,col:3},{row:1,col:4}],
        [{row:0,col:0},{row:0,col:1},{row:0,col:2},{row:0,col:3},{row:0,col:4}],
        [{row:2,col:0},{row:2,col:1},{row:2,col:2},{row:2,col:3},{row:2,col:4}],
        [{row:0,col:0},{row:1,col:1},{row:2,col:2},{row:1,col:3},{row:0,col:4}],
    ];

我会这样访问它

    _pCombos[0][0].row (result = 9)
    _pCombos[0][1].col (result = 9)

如何在 Perl 中构建此哈希/数组?除了做 10 个不同的循环并以这种方式构建之外,我无法弄清楚。但我希望它在代码运行之前就在那里。

最佳答案

my $_pCombos = [
    [{row => 9,col => 0},{row => 1,col => 9},{row => 1,col => 2},{row => 1,col => 3},{row => 1,col => 4}],
    [{row => 0,col => 0},{row => 0,col => 1},{row => 0,col => 2},{row => 0,col => 3},{row => 0,col => 4}],
    [{row => 2,col => 0},{row => 2,col => 1},{row => 2,col => 2},{row => 2,col => 3},{row => 2,col => 4}],
    [{row => 0,col => 0},{row => 1,col => 1},{row => 2,col => 2},{row => 1,col => 3},{row => 0,col => 4}],
    ];

print $_pCombos->[0][0]{row}, "\n";
print $_pCombos->[0][1]{col}, "\n";

将打印

9
9

如果想保持javascript的语法,可以使用json,像这样:

use JSON::XS;

my $_pCombos_JSON_normalized = <<'END';
[
 [{"row":9,"col":0},{"row":1,"col":9},{"row":1,"col":2},{"row":1,"col":3},{"row":1,"col":4}],
 [{"row":0,"col":0},{"row":0,"col":1},{"row":0,"col":2},{"row":0,"col":3},{"row":0,"col":4}],
 [{"row":2,"col":0},{"row":2,"col":1},{"row":2,"col":2},{"row":2,"col":3},{"row":2,"col":4}],
 [{"row":0,"col":0},{"row":1,"col":1},{"row":2,"col":2},{"row":1,"col":3},{"row":0,"col":4}]
]
END

my $_pCombos = decode_json($_pCombos_JSON_normalized);

print $_pCombos->[0][0]{row}, "\n";
print $_pCombos->[0][1]{col}, "\n";

也会打印

9
9

关于Javascript 到 Perl 数组/哈希转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125255/

相关文章:

java - 比较两个数组。处理这种情况的明智方法是什么?

c++ - C++ 中的一个特殊的 Person 类

c++ - 模式识别和字符串匹配

perl - 如何在 Perl 中读取固定长度的记录?

javascript - 从 Google 电子表格单元格中解析 Json

javascript - 使用javascript查找文本 block 中以 `icon-`开头的每个元素的索引位置

javascript - 在 Javascript/Html 中使用二维数组在表中动态创建/实现数据

perl - Spreadsheet::WriteExcel 可以更改单元格的格式而不修改其内容吗?

javascript - 如何通知其他用户某个模式已打开

javascript - Firefox 无法与位于 ws ://localhost:8080/的服务器建立连接