arrays - Perl - Data::Dumper 数组 - 从 0 开始索引

标签 arrays perl indexing data-dumper

当你转储数组时:

use Data::Dumper;
@arr=('a','b','c');
print Dumper @arr;

你得到这样的东西:

$VAR1 = 'a';
$VAR2 = 'b';
$VAR3 = 'c';

有可能得到这样的东西:

$VAR0 = 'a';
$VAR1 = 'b';
$VAR2 = 'c';

编辑:

到目前为止,我已经完成了这个单行:

perl -lane 'if ($_=~/VAR([0-9]+) = (.*)/) {print "VAR" . ($1-1) . "=" . $2} else {print $_}'

它用作后处理脚本,在 VAR 之后递减数字。但是正如您所看到的,当您有这样的元素时,它不会产生正确的输出:

VAR7=$VAR2->[1];

我能以某种方式扩展这个单行吗?

最佳答案

Dump 方法采用可选的第二个数组 ref,您可以在其中指定输出中所需的变量名称:

my @arr   = ('a', 'b', [qw(d e f)]);
my @names = map "VAR$_", 0 .. $#arr;

print Data::Dumper->Dump(\@arr, \@names);

输出:

$VAR0 = 'a';
$VAR1 = 'b';
$VAR2 = [
  'd',
  'e',
  'f'
];

您也可以看看 Data::Printer .没用过,感觉更偏向于数据结构的可视化展示。

关于arrays - Perl - Data::Dumper 数组 - 从 0 开始索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361218/

相关文章:

php - 将多个数组作为列保存到 csv 文件中

iphone - 带字符串的 NSUserDefault 中的小问题

linux - RT 的 var 中的 session_data 文件夹是什么?

perl - 如何找出旧 Mac OS X 版本上可用的 Perl 版本?

python - 如何从二维元组中选择一行

javascript - 在外部函数中 knockout 可观察数组索引

C:二维 int 数组行的 free() 使程序停止

Perl: "system"什么时候真正返回?

mysql - 显示/查看数据库 MySQL 中的索引

c++ - For 循环增量器不能用作字符串 vector 的索引