在我采取冗长/冗长/不正确的方式之前,我问这个问题.
我正在使用Perl.我有两个哈希.一个包含默认值,一个可能是用户定义的值,在某些情况下会覆盖默认值.
将这些哈希值连接在一起的最简单方法是什么,但是对于我们选择用户值的相同键,存在默认值和用户定义值.
$defaults = {
type => paper,
number => 3
};
$user_defined = {
number => 5
};
Run Code Online (Sandbox Code Playgroud)
所需的最终连接输出/哈希是
$result = {
type => paper,
number => 5,
}
Run Code Online (Sandbox Code Playgroud) 就Perl OO而言,具体到底是做->什么的?
例如,我打电话给主:
$result = a::b->mymethod( );
Run Code Online (Sandbox Code Playgroud)
在我定义的包中mymethod(),我使用以下内容:
my( $class ) = @_;
Run Code Online (Sandbox Code Playgroud)
在主要方面,我显然没有传递任何参数mymethod(),所以$class参数来自何处?有没有人对此有一个很好的解释或解释这个的文件?
在Perl中编写以下代码的最有效方法是什么:
my $index = 0;
foreach ( @spec ) {
if ( $module =~ m/$_/ ) {
splice(@spec, $index, 0, $module);
last;
}
$index++;
}
Run Code Online (Sandbox Code Playgroud)
这很好用.看起来有点罗嗦.我的想法是,在$module数组中找到匹配项时,我添加一个条目.我想按照一定的顺序保持数组并进行排序.
即如果我的数组是[a,b,c,d]和我的$module' c',我希望结果数组[a,b,c,c,d].
我有一个类似于的循环:
if ( -e "$hash->{'key'}/filename" ) {
print $_
}
Run Code Online (Sandbox Code Playgroud)
我虽然$ _会引用'-e'的参数但事实并非如此.我可以在这里使用的任何特殊变量?
我正在寻找一种方法:
我尝试了很多方法.例如使用
autocmd TabEnter * NERDTreeToggle
Run Code Online (Sandbox Code Playgroud)
那变得非常混乱.该选项卡右侧显示NERDTree.如果我专注于另一个选项卡并返回到新选项卡,则会在右侧正确打开NERDTree的第三个分割.
我也试图T在打开文件时使用它.焦点不会更改为新文件,但NERDTree会消失,我将保留在"无名称"选项卡中.
有人在这里有一个简洁的解决方案?
更新:
将NERDTree重置为HEAD - T打开时开始工作
我仍然非常喜欢在所有选项卡的左侧默认打开NERDTree的解决方案.