- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有一个非常长的包名,我可以通过在符号表中创建一个条目来为该包起别名:
BEGIN {
# Make "Alias" be an alias for "Some::Really::Long::Package";
*Alias:: = \*Some::Really::Long::Package::;
# Equivalent to:
# *main::Alias:: = \*Some::Really::Long::Package::;
}
Package::Alias
在内部为您服务。然而,这很臭,因为它与
main
混在一起。包裹。如何使别名仅影响当前包,并且只能在包中使用别名?我尝试将别名定义更改为
*Short::Alias:: = \*Some::Really::Long::Package::;
Short::Alias->myMethod()
而不仅仅是
Alias->myMethod()
.
use strict;
use warnings;
package Some::Really::Long::Package;
sub myMethod {
print "myMethod\n";
}
package Short;
BEGIN {
# Make "Alias" be an alias for "Some::Really::Long::Package";
*Short::Alias:: = \*Some::Really::Long::Package::;
}
# I want this to work
Alias->myMethod();
package main;
# I want this to not work
Alias->myMethod();
Alias->myMethod()
和
Alias::myMethod()
在
Short
工作包中,而不是在
main
中.
最佳答案
由于不想修改main
的符号表,您可以创建一个“包本地”别名
package Short;
use constant Alias => 'Some::Really::Long::Package'; # create alias
Alias->myMethod(); # correctly calls myMethod() of package Some::Really::Long::Package
package Short;
sub Alias { Some::Really::Long::Package:: } # create alias
Alias->myMethod(); # correctly calls myMethod() of package Some::Really::Long::Package
Alias->myMethod()
来自包装
main
显然会失败
Can't locate object method "myMethod" via package "Alias" (perhaps you forgot to load "Alias"?)
%main::
或
%::
没有名为
Alias::
的此类条目.
package
在一个文件中调用,也可以创建
$alias
引用
Some::Really::Long::Package
.然后可以限制
$alias
的范围到包
Short
使其无法从其他地方访问:
package Short;
{
my $alias = Some::Really::Long::Package::; # create alias
$alias->myMethod(); # correctly calls myMethod() of package Some::Really::Long::Package
}
Can both
Alias->myMethod()
andAlias::myMethod()
work in theShort
package but not inmain
?
->
一起使用。语法,但不使用
::
.这是因为 perl 似乎假定像
Alias
这样的裸词后跟包分隔符
::
代表包
Alias
包装内
main
:
package Short;
Alias::myMethod(); # if you call myMethod(), you actually call it ...
::Alias::myMethod(); # ... like this, which is equivalent ...
main::Alias::myMethod(); # ... to this
Foo::
,它开始在包中查找
main
首先而不是从当前(相对)位置。所以如果我在这里没有遗漏什么,你不能使用
Alias::myMethod()
不添加
Alias::
至
main
.
This is what something like
Package::Alias
does for you internally. However, this stinks because it mucks with themain
package.
Package::Alias
这样的模块。修改您的
main
包,因为似乎没有办法避免它。
关于perl - 如何在不影响主包的情况下为长包名起别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988822/
安装flutter_ffmpeg时我应该设置包名 安卓/build.gradle ext { flutterFFmpegPackage = "" } 并在 ios/Podfile if plu
我克隆了 sms-backup-plus存储库。这是 eclipse 的存储库文件夹结构。 但是项目中的包名称是com.zegoggles.smssync;。所以我收到错误声明的包与预期的包不匹配。我
这个问题在这里已经有了答案: Rename package in Android Studio (55 个答案) 关闭 4 年前。 你好,有什么方法可以使用这种格式重命名包名吗 live.compa
是否有合法的“通用”包名称可用于开源一些演示代码? 我想通过 Google Code 或任何地方提供演示 Android 应用程序的源代码作为“公共(public)域”,但我希望源代码包是“通用的”。
我的域名是3DTOPO.com。显然java不允许包域名以数字开头。 为什么Java反向域名不遵循与域名相同的规则?我真的不想将我的包命名为 com.threedtopo.... 首先,这不是我的域名
我们在AndroidManifest.xml中声明的包名是一个应用程序的唯一ID。为了避免命名冲突,我们通常在这个包名中使用域名,例如“com.google.*”。这样的话,就没办法避免其他人在他们的
在《OCA Java SE 7 Programmer I Study Guide》一书中找到了java.*和javax.*是非法(保留)包名的资料。当我尝试创建包“java”并从中运行类时,我收到:
在我深入研究 Java API 的过程中,我遇到了 impl 和 internal 包。到目前为止,我从未真正考虑过其中的区别 - 与所有企业级 Java 应用程序一样,我认为它们只是意味着“此处的实
当我去https://packagist.org/packages/submit提交我的包裹。 显示此错误, The package name apzentral/ink is invalid, it
所以我有基础应用程序类 DApp。 我的 flavor 应用程序类只是扩展了 DApp。 例如 package com.d.android; public class App extends DApp
我有一个模板 应用程序,可以根据客户的品牌轻松更改配置参数来重新设计外观。在 Google Play 上发布时,我显然需要更改 AndroidManifest.xml 上的 packagename。
我正在使用此命令获取 logcat: C:\abs\adb logcat >> "Testdata".txt 这是收集设备上发生的所有日志。 但我只想获取“特定于应用程序”的日志,有人可以帮我吗? 我
我是一名优秀的程序员,十分优秀!