> 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秒