与perl中的变量混淆
发布时间:2020-12-15 22:02:43 所属栏目:大数据 来源:网络整理
导读:如果使用use strict并使用警告和 如果我指定我的数据类型,它的工作原理;如果我没有指定我说它错误. use strict;use warnings;my $test=10;my @arr=(10,20,30); 如果我将数组变量名称声明为数字: use strict; use warnings; my @100=(10,30); 然后,当我运行
如果使用use strict并使用警告和
如果我指定我的数据类型,它的工作原理;如果我没有指定我说它错误. use strict; use warnings; my $test=10; my @arr=(10,20,30); 如果我将数组变量名称声明为数字: use strict; use warnings; my @100=(10,30); 然后,当我运行该程序时,它说错误: Can't use global @100 in "my" at number_sclar.pl line 28,near "my @100" 如果我删除了我的并运行该程序,它运行没有错误. 所以请任何人都能告诉我为什么我的变量不支持数值数组变量名称? 解决方法
作为创造1美元,2美元,3美元,100美元等的无意识的副作用(以保持正则表达式捕获的结果); @ 1,@ 2,@ 3,@ 100等也会被创建.
但是,除了包变量之外,perlvar中的这些和大多数特殊变量的名称都不是合法的名称.例如,你不能做我的$(;或sub(;尽管虽然$(是包变量[1]的有效名称). 当词汇被添加到5.6中的Perl时,肯定会被认为是混淆允许这些名称用于用户变量.事实上,我怀疑有人甚至没有接受这个想法. 除了Sigil之外,词汇变量必须以[a-zA-Z _] [2]中的一个字符开头,然后可以在[a-zA-Z0-9 _] [2]中跟随一些字符.因此,@ 100不是词法变量的有效名称. 笔记: > >perl -e"our $(;" >perl -e"my $(;" Can't use global $( in "my" at -e line 1,near "my $(" Execution of -e aborted due to compilation errors. >perl -e"sub (;" Prototype not terminated at -e line 1. >实际上允许更多的代码点,但它们不属于ASCII的字符集.为简单起见,我只列出了属于ASCII字符集的代码点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |