B
Bharat Ruparel
I am going through Dave Thomas's Programming Ruby Second Edition book.
I am trying to execute the code given on page 89 of the book which is as
follows:
# Sample code from Programing Ruby, page 83
alias old_backquote `
def `(cmd)
result = old_backquote(cmd)
if $? != 0
fail "Command #{cmd} failed: #$?"
end
result
end
print `date`
print `data`
when I try to run this code by typing
ruby ex200.rb at the command prompt (on Windows XP machine), the program
hangs. When I abot it by hitting CTRL-C key combination, I get the
following stack-trace:
ex0200.rb:4:in `old_backquote': Interrupt
from ex0200.rb:4:in ``'
from ex0200.rb:10
I don't quite understand what is going on here. As a matter of fact, I
don't think that I understand the redefinition of the backquote above.
I know that I can execute a system command by putting in inside two
matching backquote characters whereas his code is aliasing only one
backquote character. How can this work?
Bharat
I am trying to execute the code given on page 89 of the book which is as
follows:
# Sample code from Programing Ruby, page 83
alias old_backquote `
def `(cmd)
result = old_backquote(cmd)
if $? != 0
fail "Command #{cmd} failed: #$?"
end
result
end
print `date`
print `data`
when I try to run this code by typing
ruby ex200.rb at the command prompt (on Windows XP machine), the program
hangs. When I abot it by hitting CTRL-C key combination, I get the
following stack-trace:
ex0200.rb:4:in `old_backquote': Interrupt
from ex0200.rb:4:in ``'
from ex0200.rb:10
I don't quite understand what is going on here. As a matter of fact, I
don't think that I understand the redefinition of the backquote above.
I know that I can execute a system command by putting in inside two
matching backquote characters whereas his code is aliasing only one
backquote character. How can this work?
Bharat