Forum: Ruby problems with irb? str = 'a\b\c' seems impossible

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
C9030f7616a7da0dd3e7bf4987f46f07?d=identicon&s=25 Krekna Mektek (Guest)
on 2006-05-19 17:19
(Received via mailing list)
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,  :-)
Krekna
B2156f905dd13ec3f45123fbe0dc0f8f?d=identicon&s=25 unknown (Guest)
on 2006-05-19 17:47
(Received via mailing list)
On Sat, May 20, 2006 at 12:19:10AM +0900, Krekna Mektek 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"
1fba4539b6cafe2e60a2916fa184fc2f?d=identicon&s=25 unknown (Guest)
on 2006-05-19 17:54
(Received via mailing list)
Hi --

On Sat, 20 May 2006, Krekna Mektek 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? :-)


David
2ffac40f8a985a2b2749244b8a1c4161?d=identicon&s=25 Mike Stok (Guest)
on 2006-05-19 18:00
(Received via mailing list)
On 19-May-06, at 11:53 AM, dblack@wobblini.net 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? :-)

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>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.
E0d864d9677f3c1482a20152b7cac0e2?d=identicon&s=25 Robert Klemme (Guest)
on 2006-05-19 18:14
(Received via mailing list)
2006/5/19, Krekna Mektek <krekna@gmail.com>:
> => "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
C9030f7616a7da0dd3e7bf4987f46f07?d=identicon&s=25 Krekna Mektek (Guest)
on 2006-05-19 18:26
(Received via mailing list)
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>:
This topic is locked and can not be replied to.