コマンドラインから引数を受取る配列ARGVは変更が禁止(凍結)されている.例えば,コマンドラインから受取った文字列に別の文字列を連結しようとするSam.rbを実行するとエラー(can't modify frozen string (TypeError))となる. Sam.rb: #! /usr/bin/ruby s='foo' #これは動く p s<<'bar' p ARGV[0]<<'bar' #これはエラー 実行結果: $ Sam.rb 'foo' "foobar" /Sam.rb:7:in `<<': can't modify frozen string (TypeError) from ./Sam.rb:7 ARGVを別変数に代入しても凍結になったままである. Sam.rb: #! /usr/bin/ruby s='foo' #これは動く p s<<'bar' a=ARGV[0]