添加use strict到perl程序会禁用重要的警告消息.这是perl中的错误吗?
这个小程序有问题
#!/usr/bin/perl -w
my $rule;
sub applyRule() {
eval $rule;
}
my $foo_bar;
$foo_bar = "mega-foo-bar-ness";
$rule = 's/#FOO_BAR/$foo_bar/g';
$_ = "Please replace #FOO_BAR with something.";
applyRule();
print STDERR "OUTPUT: $_\n";
Run Code Online (Sandbox Code Playgroud)
我们在运行该程序时收到一条有用的警告信息:
$ ./test1.pl
Use of uninitialized value $foo_bar in substitution (s///) at (eval 1) line 1.
OUTPUT: Please replace with something.
Run Code Online (Sandbox Code Playgroud)
现在添加 use strict;
#!/usr/bin/perl -w
use strict;
my $rule;
sub applyRule() {
eval $rule;
}
my $foo_bar;
$foo_bar = "mega-foo-bar-ness";
$rule = 's/#FOO_BAR/$foo_bar/g';
$_ …Run Code Online (Sandbox Code Playgroud) 我发现浏览器在处理font-size时存在不一致(在Mac OS X 10.11.4上).我想知道这是Firefox中的错误,还是CSS中的错误,还是我不了解CSS?
这个JSFiddle显示了细节.在这样的部分:
<pre>Start of pre section
<code>**problem here!**</code>
End of pre section
</pre>
Run Code Online (Sandbox Code Playgroud)
样式会code { font-family: Courier; }更改Safari和Chrome显示的字体大小,但不会更改Firefox中的字体大小.然而在其他部分中,code所有浏览器中的元素大小从13px增加到16px.
font-family在所有浏览器中设置后,为什么字体大小从13px增加到16px ?
也许Firefox 正在改变font-family而不是改变font-size.然而,它确实改变字体大小在其他地方,比如在code一个内部p元素或列表内.
我猜测解决方案是在我关心它的地方(忽略可访问性)用像素单位积极设置显式字体大小.
引自2006年可能相关的Firefox bug:Bug 328621 - 奇怪的默认monospace字体大小 - 与比例字体不同
虽然这给浏览器带来的浏览器间可移植性问题对我来说似乎并不是那么微不足道.我最后一次想要标记HTML,以便等宽字体部分在Mozilla和M $ IE中显示相同,我不得不求助于绝对字体大小,由于它们所带来的可访问性问题,这当然应该避免.
是的,有一个简单的解决方法 - 更改设置.但大多数用户将使用默认值.:-(