perl – 更改“for(keys%hash){}”循环中的键
发布时间:2020-12-16 06:11:18 所属栏目:大数据 来源:网络整理
导读:我记得有些事情没有改变 for my $key ( keys %hash ) { ... 例如 for my $key ( keys %hash ) { $key = "$key_x";} 但删除键和更改值将没有问题. 我的记忆好吗? 解决方法 我想你要记住的是,如果你这样做的话 for my $item (@array) { ...} 然后不允许在@arr
我记得有些事情没有改变
for my $key ( keys %hash ) { ... 例如 for my $key ( keys %hash ) { $key = "$key_x"; } 但删除键和更改值将没有问题. 解决方法
我想你要记住的是,如果你这样做的话
for my $item (@array) { ... } 然后不允许在@array中间添加或删除项目(例如通过使用拼接),如果你尝试它的结果是未定义的.事实上,在过去的日子里,你可能会以这种方式崩溃perl. 由于keys返回的列表是一个副本,因此它完全在循环开始时确定,并且从散列中添加和删除键根本不会影响循环.这意味着你可以做类似的事情 for my $key (keys %hash) { $hash{lc $key} = delete $hash{$key}; } 100%安全无需担心.我可以保证这是真的回到perl 5.6.1(2001年4月),当时“返回的值是副本”的注释被添加到perlfunc,但似乎永远是这样,并且变化只是到文档. 由于循环中的$key别名为临时列表中的值,因此您可以更改它而不会发生任何错误,但它根本不会对%hash产生任何影响. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- NET 2.0 - WinForm Control - DataGridView 编程36计(一)
- 在VB6中将十六进制值转换为十进制值
- delphi – Firebird:DBExpress还是原生组件?
- 109.Convert Sorted List to Binary Search Tree
- 定制自己的DataGridView
- VB 中chr(10)、chr(13)和vblf、vbcr、vbcrlf的分别
- perl登录人人并发布状态
- core_framework —— 基于libev的轻量级lua网络开发框架
- golang(* interface {})(nil)是否为零?
- perl – 如何开始为CPAN编写模块?