0

すべてのマシンにログインしようとしています。だからPerlスクリプトを書いた

my $i = 7;
while ($i < 20){
    my $key = "192\.235\.2\.$i.1 ";
    print $key;
    $i++;
}

から まで実行さ192.235.2.71.191ます。しかし、連結はここで失敗します。

4

2 に答える 2

5

文字列内で連結を使用することはできません。$i.1二重引用符で囲まれた文字列内では、値が補間されますが、$iそのまま.1になります。文字列の外側に連結して書き込むことができます'192.235.2.'.$i.'1'(ドットはエスケープする必要はありません)。でも書きやすい"192.235.2.${i}1"です。${i}と同じですが、 と$iのあいまいさを回避し$i1ます。

192.235.2.71からまでのすべての IP アドレス192.235.2.191を 10 ずつ印刷したい場合は、以下を検討してください。

print join(' ', map "192.235.2.${_}1", 7 .. 19), "\n";
于 2013-08-24T14:16:26.590 に答える