[Ruby] конвейеры

Dennis Vshivkov walrus на amur.ru
Пт Июн 1 10:51:55 MSD 2007


On Fri, Jun 01, 2007 at 10:41:32AM +0400, Timur Batyrshin wrote:

 > Как можно на Ruby реализовать следующие перловые конструкции?

 > open (f, "| mail root на domain.org")

    Именно так.

 > или

 > open(f, "tail -f status.log")

 > Если делать File.open("| mail root на domain.org","w"), то он создает файл
 > с таким именем, но не передает данные на вход другой программы как
 > предполагалось.

$ ls -l a
ls: a: No such file or directory
$ ruby -e 'f = open("| cat > a", "w"); f.puts "foobar"'
$ ls -l a
-rw-rw-r-- 1 walrus walrus 7 Jun  1 18:49 a
$ ruby -e 'f = open("| cat a", "r"); puts f.gets'
foobar
$ 

    Т.е., Kernel::open, а не File.open.

-- 
/Awesome Walrus <walrus на amur.ru>
         ...Но Будда в сердце, а бес -- в ребро, молчать сейчас -- это срам...


Подробная информация о списке рассылки Ruby