原です。

私も普通その力ずくってのが普通ではないかと思うのですが、
collect を使うのがもっと普通?

  table = Struct.new("Table", :func, :len, :flag);
  $cmd = [
    %w(AAAA AAAA_LEN AAAA_FLAG),
    %w(BBBB BBBB_LEN BBBB_FLAG),
    %w(CCCC CCCC_LEN CCCC_FLAG)
  ].collect{ |x| table.new(*x) }