>  2000/11/03 (金) 14:07:59        [mirai]
> > 少ない訂正で済ませるならこう。
> > $i = 0;
> > foreach $line (@DATA) {
> > $line = substr($line,7);
> > $OUTPUT[$i] = $line";
> > $i++;
> > }
> > print "Content-type: text/html\n\n";
> > print @OUTPUT;
> > }
> > 俺ならこう書くかな。
> > foreach my $line (@DATA) {
> > 	$line = substr($line,7);
> > }
> > print "Content-type: text/html\n\n";
> > print @DATA;
> サンクスコ
> 俺も丁度今インクリメントが間違っている事を発見した
> ダウソだ
> そっちのも試してみた
> バッチリ動いたんだけど
> なんでこうなるか分からない
> foreach処理が終わった後に@DATAに$lineを入れなおすのかい?
> だとしたら凄い便利だ
> 後、
> foreach my $line (@DATA) 
>     ~~
> このmyは何だい?
> 入れなくても同じ結果になったんだが

繰り返しの対象になるリストが1個の配列である場合には
ループ変数は値のコピーのかわりに配列の要素を直接参照しています。
これをかみくだいていえば、ループ変数の値を変更すると
それに対応する配列要素の値も同時に変更されることになります
『初めてのPerl』より

foreach my $line (@DATA) {
	$line = substr($line,7);
}
は
for ($i=0; $i<@DATA; $i++) {
	$DATA[$i] = substr($DATA[$i],7);
}
と同じ。

myは説明が難しいな(;´Д`)
なくてもいいや。
詳しくは本買ってくれ。

参考:2000/11/03(金)13時56分02秒