From: James Edward Gray II Date: 2005-12-30T00:23:27+09:00 Subject: Re: Beginners Question On Dec 29, 2005, at 9:18 AM, joe quimby wrote: > Hello Folks, > > I am trying to learn ruby, so i wrote some simple scripts. > But the following script does not work as expected: > > #!/usr/bin/ruby > > while gets != nil > print $_ > end > > if i call 'echo.rb' (without any parameters) from my cygwin shell, the > scripts does what i expect it to do. It reads and returns the input. > But if i call it with any parameters, like > > echo.rb anything > > i get a error message saying : '... `gets': No such file or > directory - > 12 (Errno::ENOENT)...' > > Does anybody understand this ? gets() reads from the files given as command-line arguments, or STDIN, if none were given. So in your example above, "anything" is expected to be the path to a file that will be read. Just FYI, your example is also a little Perlish. Us Ruby guys generally write that as: ARGF.each_line do |line| puts line end Hope that helps. James Edward Gray II