# swap.pl
# 行の入れ替え
  
# プログラムの説明
  print "\n 偶数行と奇数行を入れ替えます。\n" ;
  
# データの読み込み
  print "\n ファイル名:" ;
  $name = <STDIN> ;
  chomp $name ;
  open F, "$name.txt" ;
  @data = <F> ;
  
# データの個数
  $num = @data/2 ;
  
# データの入れ替え
  for $i (1..$num)
     {
      push @new, $data[2*$i-1] ;
      push @new, $data[2*$i-2] ;
     }
  
# ファイル名変更の有無
  print "\n 保存(1.上書  他.変更):" ;
  $chg = <STDIN> ;
  chomp $chg ;
  unless ($chg == 1) {$name = "$name-2"}
  
# ファイルの保存
  open W, ">$name.txt" ;
  print W @new ;
  print "\n @new \n「$name.txt」で保存しました。\n"



# sort_block.pl
# 複数行のデータの並べ替え
  
# プログラムの説明
  print "\n 複数行のデータをソートします。" ;
  
# データの読み込み
  print "\n\n ファイル名:" ;
  $name = <STDIN> ;
  chomp $name ;
  open F, "$name.txt" ;
  @data = <F> ;
  
# 1つのデータの行数
  print "\n ブロック数:" ;
  $size = <STDIN> ;
  chomp $size ;
  
# データをブロック毎にまとめる
  for ($i = 0 ; $i < @data ; $i += $size)
     {
      for $j (0..$size-1) {push @block, $data[$i+$j]}
      $long = join "", @block ;
      push @new, $long ;
      undef @block
     }
  
# データのソート
  @new = sort {lc $a cmp lc $b} @new ;
  
# ファイル名変更の有無
  print "\n 保存(1.上書  他.変更):" ;
  $chg = <STDIN> ;
  chomp $chg ;
  unless ($chg == 1) {$name = "$name-2"}
  
  
# ファイルの保存
  open W, ">$name.txt" ;
  print W @new ;
  print "\n @new「$name.txt」で保存しました。\n"
  


# find.pl
# データの検索
  
# プログラムの説明
  print "\n 名前データを検索します。\n" ;
  
# データの読み込み
  print "\n ファイル名:" ;
  $file = <STDIN> ;
  chomp $file ;
  open F, "$file.txt" ;
  @data = <F> ;
  
# 1つのデータの行数
  print "\n ブロック数:" ;
  $size = <STDIN> ;
  chomp $size ;
  
# 検索開始
  while(1)
{
  $ct = 0 ;
  print "\n 名前:" ;
  $name = <STDIN> ;
  chomp $name ;
  print "\n" ;
  
# 該当データの表示
  for ($i = 0 ; $i < @data ; $i += $size)
     {
      $id = map /$name/, lc $data[$i] ;
      if ($id == 1)
        {
         ++$ct ;
         for $j (0..$size-1) {print " $data[$i+$j]"}
        }
      }
  
# 検索結果
  if ($ct == 0)
    {print " 該当するデータはありません。\n\n" }
  else {print " $ct 件のデータが見つかりました。\n\n" }
  
# 続けるかの判断
  print " 続けて他の名前を検索しますか。\n
1.はい  他.いいえ:" ;
  $nx = <STDIN> ;
  chomp $nx ;
  unless ($nx == 1) {exit}
}
flower.txt
------------------------------------------------
チューリップ
tulip
カーネーション
carnation
スイートピー
sweet pea
シクラメン
cyclamen
ヒヤシンス
hyacinth
月見草
evening primrose