Problems with irb? str = 'a\b\c' seems impossible


#1

Can someone help me out with this, I can’t put the string ‘a\b\c’ in
the variable str, which is strange, because I am working with the
PickAxe book, and this what should work (page 71, 2nd ed.)

the two before seem to work, but the example in the book, ‘a\b\c’ seems
not.
This a bug? How come irb does not seem to understand the last quote?

irb(main):021:0> str = ‘a\b\c ’
=> "a\b\c "
irb(main):022:0> str = ‘a\bc’
=> “a\bc”
irb(main):023:0> str = ‘a\b\c’
irb(main):024:0’
irb(main):025:0’ ’
SyntaxError: compile error
(irb):25: unterminated string meets end of file
from (irb):25
from :0

I’m very curious, :slight_smile:
Krekna


#2

On Sat, May 20, 2006 at 12:19:10AM +0900, Krekna M. wrote:

=> “a\bc”
irb(main):023:0> str = ‘a\b\c’
irb(main):024:0’
irb(main):025:0’ ’
SyntaxError: compile error
(irb):25: unterminated string meets end of file
from (irb):25
from :0

str=“a\b\c”


#3

Hi –

On Sat, 20 May 2006, Krekna M. wrote:

=> “a\bc”
irb(main):023:0> str = ‘a\b\c’
irb(main):024:0’
irb(main):025:0’ ’
SyntaxError: compile error
(irb):25: unterminated string meets end of file
from (irb):25
from :0

I’ve noticed that too. For some reason, ‘\c’ seems to produce
something other than a literal backslash-c sequence. I stumbled on
that a month or so ago but I don’t know why it happens.

(Helpful answer, isn’t it? :slight_smile:

David


#4

2006/5/19, Krekna M. removed_email_address@domain.invalid:

=> “a\bc”
irb(main):023:0> str = ‘a\b\c’
irb(main):024:0’
irb(main):025:0’ ’
SyntaxError: compile error
(irb):25: unterminated string meets end of file
from (irb):25
from :0

str = ‘a\b\c’
=> “a\b\c”

puts str
a\b\c
=> nil

Note that irb uses inspect - this is sometimes confusing as it will
print a double backslash for a single backslash in the string.

Kind regards

robert


#5

On 19-May-06, at 11:53 AM, removed_email_address@domain.invalid wrote:

This a bug? How come irb does not seem to understand the last quote?
from (irb):25
from :0

I’ve noticed that too. For some reason, ‘\c’ seems to produce
something other than a literal backslash-c sequence. I stumbled on
that a month or so ago but I don’t know why it happens.

(Helpful answer, isn’t it? :slight_smile:

Idle speculation here. It looks like something is getting confused,
in double quoted strings \c is the beginning of a control sequence

irb(main):004:0> “\cX”
=> “\030”

and that may be mis-handled by irb?

Mike

Mike S. removed_email_address@domain.invalid
http://www.stok.ca/~mike/

The “`Stok’ disclaimers” apply.


#6

yes, \c seems to mean something itself, some more examples of strange
behaviour below too.
The last two examples seems to work, escaping ‘c’ two times.

irb(main):015:0> str = “a\b\c”"
=> “a\010\002”
irb(main):001:0> str = 'a\b\c ’
=> “a\b\c "
irb(main):002:0> str = “a\b\c”
irb(main):003:0”
irb(main):004:0" "
=> “a\010\002\n\n”
irb(main):005:0> str = “a\b\d”
=> “a\010d”
irb(main):006:0> str = ‘a\b\d’
=> “a\b\d”
irb(main):007:0> str = “a\b\c”
=> “a\010\c”
irb(main):008:0> str = ‘a\b\c’
=> “a\b\c”

Krekna

2006/5/19, Mike S. removed_email_address@domain.invalid: