同じサイズの 2 つの配列をループして、文字列を各インデックスで見つかった要素に置き換えようとしています。
ループは最初の要素のみを実行しています。
#!/usr/bin/perl
use strict;
use warnings;
# SQL statement for string replace
my $insert = "INSERT INTO table ( JOB, URI ) VALUES ( 'JOB', 'URL' );";
#array of jobs
my @jobs = ("job1", "job2");
#array of url's
my @urls = ("http://www.yahoo.com", "http://www.google.com");
# for each job replace the "URL" with a url from
# the url array, then print the new sql insert statement
for( my $i = 0; $i <= $#jobs; $i++ ){
$insert =~ s/URL/$urls[$i]/g;
print $insert."\n";
}
編集 - $i<=$#urls を使用すると正しいループ サイズが得られるようになりましたが、$urls[$i] を呼び出しても、その配列で別の要素が取得されることはありません。いつも同じ要素
これは私が行っている文字列置換の問題だと思います。ループは期待どおりに要素を出力しますが、文字列置換でカウンターを使用するとそうではありません。