我在/etc/vimrc系统上的文件中看到了这个命令:
runtime! vimrc_example.vim
Run Code Online (Sandbox Code Playgroud)
来自文档:
:ru [ntime] [!] {file} ..从'runtimepath'给出的每个目录中的{file}中读取Ex命令.
它是否等同于:source {file}?
我有一个像这样的数组:
my @arr = ("Field3","Field1","Field2","Field5","Field4");
Run Code Online (Sandbox Code Playgroud)
现在我使用下面的地图,其中/ DOSOMETHING /是我正在寻找的答案.
my %hash = map {$_ => **/DOSOMETHING/** } @arr
Run Code Online (Sandbox Code Playgroud)
现在我要求哈希看起来如下所示:
Field3 => 0 Field1 => 1 Field2 => 2 Field5 => 3 Field4 => 4
有帮助吗?
通过perlsub和perlop联机操作页面,我注意到那里有许多"魔法"和"魔法"的引用(只搜索其中任何一个"魔法").我想知道为什么Perl如此丰富.
一些例子:
print ++($foo = 'zz') # prints 'aaa'
printf "%d: %s", $! = 1, $! # prints '1: Operation not permitted'
while (my $line = <FH>) { ... } # $line is tested for definedness, not truth
use warnings; print "0 but true" + 1 # "0 but true" is a valid number!
Run Code Online (Sandbox Code Playgroud) 我有一个tar包含几个文本文件的存档.我想编写一个脚本来显示(stdout)文件的内容,而不将其提取到当前目录.
其实我想做同样的事情:
tar tf myArchive.tar folder/someFile.txt
cat folder/someFile.txt
rm -R folder
Run Code Online (Sandbox Code Playgroud)
但没有rm......
我试过这种方式,但它不起作用:
tar tf myArchive.tar folder/someFile.txt | cat
Run Code Online (Sandbox Code Playgroud)
谢谢
这些是我所知道的:
my使用语句修饰符条件或循环结构(例如" my $x if ...")修改的" "语句的行为.$i = $i++;sort() 在标量上下文中truncate(),当LENGTH大于文件的长度时1 << 32"未定义.通过负位数移位也是不确定的.state @a = (1..3).在Perl中,对任何东西的引用都是一个简单的标量,并且有$sigil.有时很难说它是什么样的参考.
我个人为带有字母的引用添加变量名称,这表示引用类型.例子:
my $aValues = []; # arrayref
my $hValue = {}; # hashref
my $oValue = bless {}; # object
my $sValue = \(my $s = 'foo'); # scalarref
...
Run Code Online (Sandbox Code Playgroud)
我见过这种符号的支持者和反对者.你用它吗?它有任何缺点吗?
在5.10之前的Perl中没有"状态"声明.
我在这些Perls中遇到了一个创建静态变量的例子:my $x if 0.该if 0条件使变量的行为像一个静态变量:
use strict; use warnings;
add() for 1..7;
sub add {
my @arr = () if 0;
push @arr, '+';
print @arr, "\n";
}
Run Code Online (Sandbox Code Playgroud)
打印:
+
++
+++
++++
+++++
++++++
+++++++
Run Code Online (Sandbox Code Playgroud)
在5.10之前的所有版本的Perl中,这种行为是否一致?
Perl FAQ条目如何从字符串的开头/结尾删除空格?声明使用
s/^\s+|\s+$//g;
Run Code Online (Sandbox Code Playgroud)
比分两步做得慢:
s/^\s+//;
s/\s+$//;
Run Code Online (Sandbox Code Playgroud)
为什么这个组合语句明显慢于单独的语句(对于任何输入字符串)?
行指令(#line)用于重新配置perl对当前文件名和行号的概念.何时需要获取正确的文件名和行号(在错误消息中)?
在使用"智能匹配(~~)"测试我的Perl代码的过程中,我遇到了这个问题.42,42.0,"42.0","42"之间是否有任何区别
$var1 = "42";
$var2 = "42.0";
$a = $var1 ~~ $var2;
Run Code Online (Sandbox Code Playgroud)
我得到$a0; 这意味着$var1并$var2不平等.
请解释.