[[
   "start",
  ["comment","#!/usr/bin/perl"]
],[
   "block_comment",
  ["comment.doc","=begin"]
],[
   "block_comment",
  ["comment.doc"," perl example code for Ace"]
],[
   "start",
  ["comment.doc","=cut"]
],[
   "start"
],[
   "start",
  ["keyword","use"],
  ["text"," "],
  ["identifier","strict"],
  ["text",";"]
],[
   "start",
  ["keyword","use"],
  ["text"," "],
  ["identifier","warnings"],
  ["text",";"]
],[
   "start",
  ["keyword","my"],
  ["text"," "],
  ["identifier","$num_primes"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","0"],
  ["text",";"]
],[
   "start",
  ["keyword","my"],
  ["text"," @"],
  ["identifier","primes"],
  ["text",";"]
],[
   "start"
],[
   "start",
  ["comment","# Put 2 as the first prime so we won't have an empty array"]
],[
   "start",
  ["identifier","$primes"],
  ["lparen","["],
  ["identifier","$num_primes"],
  ["rparen","]"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["constant.numeric","2"],
  ["text",";"]
],[
   "start",
  ["identifier","$num_primes"],
  ["keyword.operator","++"],
  ["text",";"]
],[
   "start"
],[
   "start",
  ["identifier","MAIN_LOOP"],
  ["text",":"]
],[
   "start",
  ["keyword","for"],
  ["text"," "],
  ["keyword","my"],
  ["text"," "],
  ["identifier","$number_to_check"],
  ["text"," "],
  ["lparen","("],
  ["constant.numeric","3"],
  ["text"," "],
  ["keyword.operator",".."],
  ["text"," "],
  ["constant.numeric","200"],
  ["rparen",")"]
],[
   "start",
  ["lparen","{"]
],[
   "start",
  ["text","    "],
  ["keyword","for"],
  ["text"," "],
  ["keyword","my"],
  ["text"," "],
  ["identifier","$p"],
  ["text"," "],
  ["lparen","("],
  ["constant.numeric","0"],
  ["text"," "],
  ["keyword.operator",".."],
  ["text"," "],
  ["lparen","("],
  ["identifier","$num_primes"],
  ["constant.numeric","-1"],
  ["rparen","))"]
],[
   "start",
  ["text","    "],
  ["lparen","{"]
],[
   "start",
  ["text","        "],
  ["keyword","if"],
  ["text"," "],
  ["lparen","("],
  ["identifier","$number_to_check"],
  ["text"," "],
  ["keyword.operator","%"],
  ["text"," "],
  ["identifier","$primes"],
  ["lparen","["],
  ["identifier","$p"],
  ["rparen","]"],
  ["text"," "],
  ["keyword.operator","=="],
  ["text"," "],
  ["constant.numeric","0"],
  ["rparen",")"]
],[
   "start",
  ["text","        "],
  ["lparen","{"]
],[
   "start",
  ["text","            "],
  ["keyword","next"],
  ["text"," "],
  ["identifier","MAIN_LOOP"],
  ["text",";"]
],[
   "start",
  ["text","        "],
  ["rparen","}"]
],[
   "start",
  ["text","    "],
  ["rparen","}"]
],[
   "start"
],[
   "start",
  ["text","    "],
  ["comment","# If we reached this point it means $number_to_check is not"]
],[
   "start",
  ["text","    "],
  ["comment","# divisable by any prime number that came before it."]
],[
   "start",
  ["text","    "],
  ["identifier","$primes"],
  ["lparen","["],
  ["identifier","$num_primes"],
  ["rparen","]"],
  ["text"," "],
  ["keyword.operator","="],
  ["text"," "],
  ["identifier","$number_to_check"],
  ["text",";"]
],[
   "start",
  ["text","    "],
  ["identifier","$num_primes"],
  ["keyword.operator","++"],
  ["text",";"]
],[
   "start",
  ["rparen","}"]
],[
   "start"
],[
   "start",
  ["keyword","for"],
  ["text"," "],
  ["keyword","my"],
  ["text"," "],
  ["identifier","$p"],
  ["text"," "],
  ["lparen","("],
  ["constant.numeric","0"],
  ["text"," "],
  ["keyword.operator",".."],
  ["text"," "],
  ["lparen","("],
  ["identifier","$num_primes"],
  ["constant.numeric","-1"],
  ["rparen","))"]
],[
   "start",
  ["lparen","{"]
],[
   "start",
  ["text","    "],
  ["support.function","print"],
  ["text"," "],
  ["identifier","$primes"],
  ["lparen","["],
  ["identifier","$p"],
  ["rparen","]"],
  ["keyword.operator",","],
  ["text"," "],
  ["string","\", \""],
  ["text",";"]
],[
   "start",
  ["rparen","}"]
],[
   "start",
  ["support.function","print"],
  ["text"," "],
  ["string","\"\\n\""],
  ["text",";"]
],[
   "start"
],[
   "start"
]]