- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的代码中收到一个 uninitialized value in string eq at *** line xxx
警告,如果那里确实有一个 eq
,这也很容易修复行。
但是在 hashref 中的值上有一个正则表达式匹配。
if ($hashref->{parameters}->{type} =~ m/:/) {
在此之前的几行我什至有这个:
$hashref->{parameters} = defined($hashref->{parameters}) ? $hashref->{parameters} : '';
$hashref->{parameters}->{type} = defined($hashref->{parameters}->{type}) ? $hashref->{parameters}->{type} : '';
所以这个值至少应该被初始化。
我在问我自己和你:为什么我仍然收到该值未初始化的警告,而且为什么它说的是 eq
而不是 pattern match
编辑:
parameters
子哈希包含所有通过 url 输入(post 和/或 get)给出的变量。type
值是那些可能 位于 url 中的变量之一。type
值是否在 url 中并不重要,如果它包含一个值,我总是会收到一个 uninitialized value in string eq
警告。即使我通过在 buggy 行之前警告它来控制 type 行的值。
<强>2。编辑:正如@ikegami 所假设的那样,确实有一个 elsif
导致了警告
整个 if - elsif 语句看起来有点像:
if ($hashref->{parameters}->{type} =~ m/:/) {
…
elsif ($hashref->{parameters}->{type} eq $somevalue) {
…
}
未初始化的是 $somevalue
。
最佳答案
你在那一行只显示了一半的陈述。完整的声明实际上看起来像
456: if ($foo =~ /bar/) {
457: ...
458: }
459: elsif ($baz eq 'qux') {
460: ...
461: }
语句的运行时警告通常使用语句开始处的行号,因此如果正则表达式不匹配且 $baz
未定义,您将得到警告列表行第 459 行的 eq
为 456。
这里也是一样的思路:
$ perl -wE' my $x; # 1
say # 2
4 # 3
+ # 4
$x # 5
+ # 6
5; # 7 '
Use of uninitialized value $x in addition (+) at -e line 2.
9
最近*,Perl 进行了更改,以便将 elsif
条件视为不同的语句以避免此类问题。您必须拥有旧版本的 Perl。
$ perlbrew use 5.10.1
$ perl -we'
my ($x,$y,$z);
if ($x) {
} elsif ($y eq $z) {
}'
Use of uninitialized value $y in string eq at -e line 4.
Use of uninitialized value $z in string eq at -e line 4.
$ perlbrew use 5.8.9
$ perl -we'
my ($x,$y,$z);
if ($x) {
} elsif ($y eq $z) {
}'
Use of uninitialized value in string eq at -e line 3.
Use of uninitialized value in string eq at -e line 3.
关于regex - 正则表达式匹配时出现未初始化的 eq 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780777/
如何使下面的代码更简单、更少? 谢谢。 012 012 $('.btn div:eq(0)').click(function(){ $('.content div').hide();
新年快乐! 我正在努力学习 Racket(我不是经验丰富的 Lisper)。 现在我在 Racket 8.3 中遇到了以下问题: #lang racket > (define str1 "hello"
我最近开始学习 jQuery。考虑到以下html结构,我想知道选择器 $('ul>li:eq(2)') 和 $('ul>li').eq 之间的基本区别是什么(2). one two
IF :eq() 和 .eq() 是相同的功能,为什么是两种方法。有什么目的吗? 或者 哪里使用:eq()? 在哪里使用.eq()? 最佳答案 http://jsperf.com/eq-vs-eq 他
示例: $("td:eq(2)").css("color", "red"); or $('td').eq(2).css("color", "red"); 我想知道缩写“eq”代表什么,我不是问.eq(
为什么 ? Yes equals true. Yes does not equal true. 页面输出。 “是的就等于真的。” 最佳答案 Chris 和 Keshav 的答案是正确的,Cold
我对 Haskell 很陌生,在尝试编译 Frag 时遇到了这个错误。 src/AFRPVectorSpace.hs:51:25: Could not deduce (Eq a) arisin
我对 powershell 知之甚少。 我想知道是否有人可以指出我需要了解什么来解释以下内容: PS C:\Users\username> (Get-Aduser -Filter 'Enabled -
在使用 eq() 函数的示例中,它被用作 eq("+index+") 我以前从未见过这样的语法。两边的“+”号是什么意思?它与 eq(index) 有什么不同? 谢谢! 最佳答案 在 jQuery 中
我正在使用 cqlc 查询 cassandra。当我尝试运行 SELECT 语句时 ctx := cqlc.NewContext() iter, err := ctx.Select()
我希望能够推导出 Eq和 Show对于包含多个字段的 ADT。其中之一是功能字段。做的时候Show ,我希望它显示一些虚假的东西,例如"" ;做的时候Eq ,我希望它忽略该字段。在不为 Show 手写
我正在使用 jQuery 1.7.1,我试图找出为什么以下代码需要 4600 毫秒,如果我将 :eq(0) 更改为 :first 是一样的结果。 $("tr:eq(0) td"); // x10000
我正在尝试使用 Agda 解决以下一阶逻辑问题: problem : {A B : Set} {f : A → B} → inj f → ∀[ x ] ∀[ y ] (¬ Eq x y → ¬ E
我正在阅读一个haskell 教程(向你学习一个haskell 非常好),我正在玩我根据书中的一个函数编写的这段代码。 reverseNum :: (Num a) => a -> a reverseN
我正在处理一个页面,该页面具有可变数量的 .def-set 类元素。在某些页面上可能有多达 60 个,而在其他页面上可能只有 1 个。 我已经能够在 .def-set 类的第三个实例之后附加一个元素
我有一个来自 Learn You a Haskell for Great Good 的示例,名为 class Eq1 a where (===), (=/=) :: a -> a -> Bool
在 -eq 命令中包含多个值的语法是什么: 这有效,但我认为有一种方法可以节省一些输入: Get-Service | where {($_.Status -eq "Stopped") -OR ($_.
我们在实现 SCIM API 和让 Azure 在每种情况下都满意方面遇到了问题。Microsoft 试图为人们提供 configure how their active directory将映射到
我们在实现 SCIM API 和让 Azure 在每种情况下都满意方面遇到了问题。Microsoft 试图为人们提供 configure how their active directory将映射到
我的程序有问题。 我有一个比较两个字符串的条件: (if (eq? (exp1) (exp2))) 当 exp1 给我一个字符串,exp2 给我一个字符串。可以肯定的是,当我更改“eq?”时到“=”,
我是一名优秀的程序员,十分优秀!