すべてのマシンにログインしようとしています。だからPerlスクリプトを書いた
my $i = 7;
while ($i < 20){
my $key = "192\.235\.2\.$i.1 ";
print $key;
$i++;
}
から まで実行さ192.235.2.71
れ.191
ます。しかし、連結はここで失敗します。
すべてのマシンにログインしようとしています。だからPerlスクリプトを書いた
my $i = 7;
while ($i < 20){
my $key = "192\.235\.2\.$i.1 ";
print $key;
$i++;
}
から まで実行さ192.235.2.71
れ.191
ます。しかし、連結はここで失敗します。
文字列内で連結を使用することはできません。$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";