まず、データファイルからそのデータを取得します。 $file = './data.dat'; open(IN,"$file"); @line = ; close(IN); 例えば10行目を削除したい場合は、 データの行は0から始まりますから9行目ということになります。 $line[9] = ''; これで10行目は削除されます。 削除されたデータを再度格納すればOKなわけです。 open(OUT,">$file"); print OUT @line; close(OUT); これで10行目が削除されたデータが保存されます。 ある名前にマッチした行を消す場合の方法は以下のようになります。 まず、データファイルからそのデータを取得します。 $file = './data.dat'; open(IN,"$file"); @line = ; close(IN); データの行数を取得します。 $n = @line; 次に、名前を指定します。 $name = 'sato'; 次に、この名前とマッチした行を削除します。 for($i=0; $i<$n; $i++){ データが一致した場合に消去します。 if($name =~ /$line[$i]/){ $line[$i] = ''; } } 最後に消去後のデータを保存します。 open(OUT,">$file"); print OUT @line; close(OUT); これでsatoにマッチした行を消して保存できます。 データを更新する場合は、以下のようにします。 まず、データファイルからそのデータを取得します。 $file = './data.dat'; open(IN,"$file"); @line = ; close(IN); データの行数を取得します。 $n = @line; 次に、名前を指定します。 $name = 'sato'; 次に、この名前とマッチした行を更新します。 for($i=0; $i<$n; $i++){ satoにデータが一致した場合suzukiに変更します。 if($name =~ /$line[$i]/){ $line[$i] = 'suzuki'; } } 最後に消去後のデータを保存します。 open(OUT,">$file"); print OUT @line; close(OUT); これでsatoにマッチした行をsuzukiに変更し 保存できます。 これを他の記述と組み合わせて色々なプログラムを組むことができます。