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

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

I'm very curious, :slight_smile:
Krekna

···

from :0

str="a\\b\\c"

···

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

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

Hi --

···

On Sat, 20 May 2006, Krekna Mektek wrote:

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'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

--
David A. Black (dblack@wobblini.net)
* Ruby Power and Light, LLC (http://www.rubypowerandlight.com)
   > Ruby and Rails consultancy and training
* Author of "Ruby for Rails" from Manning Publications!
   > Ruby for Rails

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

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

···

2006/5/19, Krekna Mektek <krekna@gmail.com>:

--
Have a look: Robert K. | Flickr

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

···

On 19-May-06, at 11:53 AM, dblack@wobblini.net wrote:

Hi --

On Sat, 20 May 2006, Krekna Mektek wrote:

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'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:

--

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.

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 Stok <mike@stok.ca>:

On 19-May-06, at 11:53 AM, dblack@wobblini.net wrote:

> Hi --
>
> On Sat, 20 May 2006, Krekna Mektek wrote:
>
>> 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'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 Stok <mike@stok.ca>
Mike Stok

The "`Stok' disclaimers" apply.