From: Dave Thomas Date: 2000-06-18T11:57:48-05:00 Subject: [ruby-talk:03506] Re: Ruby to call commands, e.g. "find , perl scripts , nmap , and others" is thispossible? Jim writes: > I am trying to use nmap to test my own network and automate the > process. I keep seeing perl being used for this type of work , but > was hopping that may be ruby could do this with out all the lines of > code needed for perl. Is perl a better choice than Ruby for this? I don't want to get into a Ruby vs. Perl discussion, but I can offer some observations: 1. Ruby and Perl offer roughly the same set of facilities for accessing system commands and their output. Ruby is slightly more convenient, as the popen method returns both sides of a bi-directional connection in one IO object, while Perl's IPC::open2 sets up two separate objects. However, if you need IPC::open3, then Ruby's version is the same as Perl's. 2. Ruby's regular expression matching syntax is as easy to use as Perl's. However, string substitutions are different (not harder--just different ;-) 3. Creating classes and objects is considerably easier in Ruby. This changes the style of programming you use. In Perl, I tended to keep things in hashes of lists of lists of ..., or to use Struct.pm. In Ruby, it's easy to slap in a new class to represent some entity, and then add methods to that class as you need. As programs grow, I'd say Ruby code will be more maintainable than Perl (and I've written 10,000+ line programs in both). So, for small tasks, I'd probably say that there's not much to choose between them. If one language has a library you need and the other doesn't, then your choice is probably made for you. For larger tasks, I'd suggest investing the time becoming familiar with Ruby. Regards Dave