James Gray
12/29/2005 3:23:00 PM
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