How to use gsub method?

hi

sorry!
i can not speak english well…

This is how I know…
“abcdef”.gsub(/c/) {|h| puts h}

but, Why do I get an error that my code…

this is my code

require ‘net/http’

page= Net::HTTP.new(‘www.google.co.kr’,80)

reg = page.get(’/index.html’)

reg.gsub(/a/) {|gg| puts gg}
puts reg

thank you…

On Sat, Aug 30, 2008 at 2:59 PM, Hwang In-seok [email protected]
wrote:

reg.gsub(/a/) {|gg| puts gg}
puts reg

thank you…

String#gsub does string substitution, but it cannot replace /a/ with
nil, and the return value of ‘puts’ is nil.
Maybe you want to try String#scan instead, like this:

p reg.scan(/a/)

^ manveru

Michael F. wrote:

p reg.scan(/a/)

^ manveru

thank you…
but, ‘gsub’ and ‘scan’ both have the same error.

error is…
http.rb:9: private method `scan’ called for #<Net::HTTPOK 200 OK
readbody=true> (NoMethodError)

private method is what mean??
i don’t understand…

please teach me.

This is your code :
require ‘net/http’

page= Net::HTTP.new(‘www.google.co.kr’,80)

reg = page.get(’/index.html’)

reg.gsub(/a/) {|gg| puts gg}
puts reg

Your are trying to use gsub on the object returned by Net::HTTP , which
isn’t a string . Your code should look like this :

require ‘net/http’

page= Net::HTTP.new(‘www.google.co.kr’,80)

reg = page.get(’/index.html’)

reg.body.gsub!(/a/) {|gg| puts gg}
puts reg.body

Pay attention to the gsub! , which modifies the string in-place .Judging
by your script,that is what you want .

wow, thank you!! vhaerun

Thanks to the learned

Icy good weekend.