我正在尝试登录所有计算机。所以写了一个Perl脚本
my $i = 7;
while ($i < 20){
my $key = "192\.235\.2\.$i.1 ";
print $key;
$i++;
}
从192.235.2.71
到.191
。但连接失败了。
答案 0 :(得分:5)
您不能在字符串中使用concatentation 。双引号字符串中的$i.1
将插入$i
的值,但保留.1
。您可以在字符串外部进行连接并写入'192.235.2.'.$i.'1'
(点不需要转义)。但是写"192.235.2.${i}1"
更容易。 ${i}
与$i
相同,但避免了与$i1
的歧义。
如果您想以10为增量打印从192.235.2.71
到192.235.2.191
的所有IP地址,请考虑
print join(' ', map "192.235.2.${_}1", 7 .. 19), "\n";
答案 1 :(得分:1)
如果要连接,则不使用字符串连接而是使用字符串插值:
my $key="192.235.2." . $i . ".1 ";
如果要通过插值获得相同的结果:
my $key="192.235.2.$i.1 ";
无论如何,没有必要逃避点,你不是在正则表达式匹配上下文...