長いプログラムが書けると達成感が得られるものだが, 実際のところプログラムは短ければ短い程よいものである。 プログラムの記述に慣れたら, すこしでも記述を短くできる記法を覚えていこう。
#{式}
     ダブルクォートで括られた文字列中に登場する
     #{式} 
     という書式は,内部の 式 
     を評価した値に置き換えられる。printf 
     を持ち出すまでもない軽微なものの出力に便利である。
name = gets.chomp
puts "#{name}さんですね?"
     変数だけでなく,Rubyの文として通用するどんな式でも書ける。
     シングルクォート中の #{ }はそのままにされる。
`コマンド`
     バッククォート ` ` は,内部に書かれた
     コマンド をシェル経由で起動し,標準出力から得られた出力を
     文字列として取り込む。コマンド一発で簡単に得られる情報を
     Rubyプログラムの中で楽に取り込みたいときに用いる。
systemname = `uname -s`
長い文字列をプログラムの中に埋め込むとき,開いたままの
     クォートで何行も進む代わりに,ヒアドキュメント の
     << を利用すると見やすいソースとなる。
     以下の2つのソースは同じ文字列を printf
     で出力する。
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
title = ""
while title <= ""
  STDERR.print "タイトルは?: "
  title = gets.chomp
  if title > "" then
    printf("<html>
<head><title>%s</title></head>
<body>
<h1>%s</h1>
<p>見本文書です。</p>
</body>
</html>\n", title, title)
  end
end
     
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
title = ""
while title <= ""
  STDERR.print "タイトルは?: "
  title = gets.chomp
  if title > "" then
    printf(<<_EOS_, title, title)
<html>
<head><title>%s</title></head>
<body>
<h1>%s</h1>
<p>見本文書です。</p>
</body>
</html>
_EOS_
  end
end
     プログラム中 「<<Word」
     のパターンが現れると,次の行から Word のみが
     現れる行までを 「<<Word」 の
     位置にある文字列として処理する。
Word をダブルクォートで括ったときは
     置き換え文字列もダブルクォートで括られたように処理されるので
     たとえば #{ } がその式の値に置き換えられる。
     また Word をバッククォートで括ったときは
     置き換え文字列をコマンドとしてシェルに渡した結果に
     置き換える。
ダブルクォートやシングルクォートを含んだ文字列や, スラッシュを含んだ正規表現を作る場合など, %記法を用いると任意の文字で内容物を括ることができる。
| 記号 | 意味 | 例 | 結果 | 
|---|---|---|---|
%Q,string, | 
     	" " の文字列 | %Q,foo,
     	 | "foo" | 
%q,string, | 
     	' ' の文字列 | %q,#{f},
     	 | '#{f}' | 
%x,cmd, | 
     	` ` の文字列 | %x,ls,
     	 | `ls` | 
%r,regexp, | 
     	正規表現 | %r,.*/.*,
     	 | /.*\/.*/ | 
%w,string, | 
     	文字列の配列(空白区切り) | %w,foo bar,
     	 | ['foo', 'bar'] | 
%W,string, | 
     	文字列の配列(空白区切り)#{ }展開,\有効 | 
     	%W,foo #{b},
     	 | ["foo", "#{b}"] | 
カンマ(,)の部分は任意の文字に置き換え可能。
     括り始めを開き括弧にした場合は,対応する閉じ括弧を右側に置く。
     以下のいずれも同じ意味。
%r,.*/.*,
%r|.*/.*|
%r(.*/.*)
%r[.*/.*]
%r{.*/.*}
%r<.*/.*>
     HTMLのソースを吐き出すときには,出力に " "
     を使いたいいっぽう,式展開をするためにダブルクォート括りの
     文字列にしたいことが多いので,
title="foo"
header=%Q,<body>
<h1 class="myclass">>#{title}</h1>
</body>,
     と %記法を利用するとダブルクォートの記述が楽になる。
複数の単語を配列の初期値として与えるときには
words = %w,foo bar baz hoge hero fuga bochan,
のようにすると,クォート記号を書かなくていいので ソース記述が楽になる。