- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道裸词可以用作引用运算符(q//、qq//)、哈希键等中的字符串。我个人对此并不太兴奋,因为我无法克服心理预期应该引用文字字符串,如 C、C++ 中那样。但是,如果我要混合使用带引号的字符串和裸词,我想确保我不会意外地搬起石头砸自己的脚,因为裸词在运行时无法正确运行。
请排除“use strict”会在编译时将其捕获为错误的用例。我总是启用“严格”模式,所以我不担心这些情况。
下面是基于所提供的答案和评论的代码说明:
#!/usr/bin/perl
use strict;
use constant SIZE => "const_size";
sub size {
return "getsize";
}
my $href = {
size => 1,
getsize => 2,
const_size => "CONST_SIZE",
SIZE => "LARGE",
};
print "constant SIZE:", SIZE, "\n";
print "1. \$href->{size}:", $href->{size}, "\n";
print "1a. \$href->{size()}:", $href->{size()}, "\n";
print "2. \$href->{getsize}:", $href->{getsize}, "\n";
print "3. \$href->{SIZE}:", $href->{SIZE}, "\n";
print "3a. \$href->{(SIZE)}:", $href->{(SIZE)}, "\n";
输出:
$ ./bare_word.pl
constant SIZE:const_size
1. $href->{size}:1
1a. $href->{size()}:2
2. $href->{getsize}:2
3. $href->{SIZE}:LARGE
3a. $href->{(SIZE)}:CONST_SIZE
对于散列键来说,裸字在所有情况下都表现得符合预期。要覆盖该行为,我们需要明确消除歧义。
最佳答案
Please exclude use cases where 'use strict' would catch them as errors at compile time.
use strict;
完全阻止使用 barewords 。允许裸词会导致打字错误非常安静和/或巧妙地失败。
文档声称小写裸词可能会被误解为 Perl future 版本中的函数调用,但事实并非如此。需要启用新功能,例如 say
。
也就是说,我认为您实际上是在谈论自动引用的哈希键。可能会出现混淆,因为人们可能会编写 $hash{foo}
并期望它等于 $hash{foo()}
。但 foo
(与 foo()
相反)不仅是一种奇怪的调用子方法,而且没有人愿意编写 $hash{ foo()}
首先。 (肯定需要一个参数。)
唯一可以防止代码被误解的可能性无限小是常量被用作散列键的可能性。 $hash{CONSTANT}
会失败。人们需要使用 $hash{(CONSTANT)}
、$hash{+CONSTANT}
或某种其他形式的消歧形式。
关于string - 在 Perl 中使用裸字有哪些陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205050/
我对 Lift Cookbook for AJAX Forms 感到困惑,我遇到了以下对象声明: object EchoForm extends { 这很令人困惑,所以我尝试了一下,它编译得很好。我的
我正尝试按照指示在裸 CSS 模态窗口内实现视频 here到目前为止效果很好。我遇到的唯一问题是视频在模态窗口打开之前自动启动(我必须保留视频“自动启动”选项)。模态窗口关闭时视频也不会停止。 是否有
同样,裸 char16_t 是有符号的还是无符号的?是否定义了实现? 最佳答案 来自标准(C++11 前草案 n3290,或 C++11 后草案 n3337)§3.9.1 基本类型: Types ch
我使用 C# 编程已经...有一段时间了。我最近编写了一个例程,我突然想到这是我第一次(我记得)我故意使用裸代码块(即没有前面的控制流语句)。代码看起来像这样: //... var output =
我最近开始使用 nativescript,但我遇到了一个似乎无法解决的问题。 我想要完成的是只打开一个基本的 WebView 并设置一个外部 url 来加载,例如 stackoverflow.com。
我通过以下方式创建了一个共享仓库: git init --bare my_project.git 在某个时候,另一个用户用他的更改更新了这个 repo(使用 git push )。 我如何检查共享存储
我刚刚浏览完 Google 搜索结果,其中包含所有关于 git 无法克隆空存储库是多么愚蠢的电子邮件咆哮。一些善良的灵魂甚至提交了一个补丁。在升级 git 之前,克隆空的、裸 git 存储库的最简单、
我喜欢编写一些 wordpress 模板,并搜索了一些可用的裸模板,我可以从这些模板开始。 因为我是 wordpress 的新手,你能推荐最好的裸模板作为我可以使用的基础吗? 干杯 最佳答案 在我看来
我正试图找到一个最新的答案,以使用 Godaddy 和 Heroku SSL 设置裸域。我的目标是让所有页面都登陆安全页面 https://www.example.com https://www.ex
这个问题在这里已经有了答案: What's the -practical- difference between a Bare and non-Bare repository? (11 个答案) 关
我运行一个 git 服务器,它只包含裸远程。比如说,我有一个名为 DIG.git 的裸 Remote ,我通常使用它进行克隆: git clone 55.66.77.88:git/DIG.git 我想
是否有一个用于裸 git repo 目录的 GUI(任何地方都没有工作树)我可以: 检查日志 查看任何提交的整个工作树结构 关于我为什么需要这个: 我的 git 是这样初始化的: git --git-
我有一台服务器托管我的几个项目的“裸”GIT 存储库。 我想知道如何将 GIT 移动到另一台服务器? 最佳答案 只需将父目录复制到新机器,并让 check out 的副本使用 git remote s
我有一个域 example.com 和 www.example.com。我正在为 DNS 使用 Heroku 和 Zerigo。现在我有一个从根域到 www.example.com 的转发从我的 Ho
我的服务器已经在 TCP 端口 80 和 443 上运行 IIS。我想通过 Internet 为我的所有团队成员提供一个集中的“推/pull ”Git 存储库。 所以我应该使用 HTTP 或 HTTP
裸露的 SUM 和包裹在 CALCULATE 中的 sum 有什么区别? Measure1 = SUM( tab[col1]) ) Measure2 = CALCULATE ( SUM( tab[co
我是一名优秀的程序员,十分优秀!