Need help to fix syntax problem for cgi

Hi bellow is the script.

I think its failing at

if #{f[‘name’]} =~/asw1-v2r7c9-bry/
brydc << #{f[‘name’]}
end

but dont understand where is the problem , i just get Internal Server
Error if i enable
this line brydc << #{f[‘name’]}

I am quite new and i am from php background… and in php it was easy to
troubleshoot …

#!/usr/bin/ruby
require ‘cgi’
require ‘mysql’
cgi = CGI.new

m = Mysql.new(“localhost”,“root”,"",“report”)
r = m.query(“select device.name as name, hardware.name as model
device.hardware=hardware.id”)
brydc=Array.new
r.each_hash do |f|
if #{f[‘name’]} =~/asw1-v2r7c9-bry/
brydc << #{f[‘name’]}
end

end
puts cgi.header

puts "

Per DataCenter

Switch Per DataCenter

"

brydc.each do |f|
puts “


puts “”
puts “”
end

puts "

#{f[‘name’]}
"

thanks for your help.

Am 02.10.2012 14:47, schrieb Ferdous ara:

Hi bellow is the script.
^^^^^^

I think its failing at

if #{f[‘name’]} =~/asw1-v2r7c9-bry/
brydc << #{f[‘name’]}
end

You should use irb to try out code snippets.

1.9.3-p194 :001 > value = ‘a hash value’
=> “a hash value”
1.9.3-p194 :002 > array = []
=> []
1.9.3-p194 :003 > array << #{value}
1.9.3-p194 :004 > puts array
SyntaxError: (irb):4: syntax error, unexpected tIDENTIFIER, expecting
keyword_do or ‘{’ or ‘(’ from …/irb:16:in `’

#{} is supposed to be used inside double quotes.
Assuming your hash values are strings, just remove it.

if f[‘name’] =~ /asw1-v2r7c9-bry/
brydc << f[‘name’]
end

I am quite new and i am from php background… and in php it was easy to

The ruby error will be in your web server’s log file. It looks like you
are using a unix operating system, so you can tail the log file:

$ tail -f ‘log_file_name’

…which will show the last lines from the log file and update them in
real time as new lines are written to the log file.

Or, you can use something like here:

a) cgi-exception | RubyGems.org | your community gem host

or

b) http://eradman.com/posts/ruby-cgi.html