# Whats wrong with this script?

**URL:** <https://www.ruby-forum.com/t/whats-wrong-with-this-script/158623>\
**Category:** Ruby\
**Created:** [January 26, 2009, 12:36am UTC](https://www.ruby-forum.com/t/whats-wrong-with-this-script/158623 "2009-01-26T00:36:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![fantomknight10](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/94ad74/32.png) [@fantomknight10](https://www.ruby-forum.com/u/fantomknight10)\
**Post date:** [January 26, 2009, 12:36am UTC](https://www.ruby-forum.com/t/whats-wrong-with-this-script/158623/1 "2009-01-26T00:36:30Z")

</div>

#!/usr/bin/ruby

$headersumfile = File.open(“Header-summary.txt”,“w”);

$finalizerfile = File.open(“Finalizers.m”,“w”);

def scanfiles(dirhand, dirname)

dirhand.each { | fn |  
if (fn == ‘.’ || fn == ‘…’)

```
elsif (fn =~ /\.m$/)
  File.open("#{dirname}/#{fn}","r") { | f |
    f.each { | l |
      $finalizerfile.puts(l);
    }
  }
elsif (fn =~ /\.h$/)
  File.open("#{dirname}/#{fn}","r") { | f |
    f.each { | l |
      $headersumfilefile.puts(l);
    }
  }
elsif (File.directory?("#{dirname}/#{fn}"))
  scanfiles(Dir.open("#{dirname}/#{fn}"),"#{dirname}/#{fn}")
end

```

}  
dirhand.close;  
end

scanfiles(Dir.open(“Source”),“Source”);

$finalizerfile.close;  
$headersumfile.close;

Message from terminal:  
emac$ ./extractdata.rb  
./extractdata.rb:21:in `scanfiles': private method`puts’ called for  
nil:NilClass (NoMethodError)  
from ./extractdata.rb:20:in `each' from ./extractdata.rb:20:in`scanfiles’  
from ./extractdata.rb:19:in `open' from ./extractdata.rb:19:in`scanfiles’  
from ./extractdata.rb:9:in `each' from ./extractdata.rb:9:in`scanfiles’  
from ./extractdata.rb:25:in `scanfiles' from ./extractdata.rb:9:in`each’  
from ./extractdata.rb:9:in `scanfiles’  
from ./extractdata.rb:31  
Work Directory: ~/Desktop/Drawkit/DrawKit/Trunk :

The script are supposed to copy objective source and header files to a  
pair of files.  
The directory to be scanned exists in my current work directory.  
Can someone please help

---

<div class="post-metadata">

**Author:** ![fantomknight10](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/94ad74/32.png) [@fantomknight10](https://www.ruby-forum.com/u/fantomknight10)\
**Post date:** [January 26, 2009, 12:42am UTC](https://www.ruby-forum.com/t/whats-wrong-with-this-script/158623/2 "2009-01-26T00:42:57Z")

</div>

Tommy N. wrote:

> $headersumfilefile.puts(l);

Typo: there is no variable $headersumfilefile, only $headersumfile.

HTH,  
Sebastian

---

<div class="post-metadata">

**Author:** ![fantomknight10](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/94ad74/32.png) [@fantomknight10](https://www.ruby-forum.com/u/fantomknight10)\
**Post date:** [January 26, 2009, 8:07am UTC](https://www.ruby-forum.com/t/whats-wrong-with-this-script/158623/3 "2009-01-26T08:07:27Z")

</div>

- Sebastian H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) (00:40) schrieb:

> Tommy N. wrote:
> 
> > $headersumfilefile.puts(l);
> 
> Typo: there is no variable $headersumfilefile, only $headersumfile.

That seems to be another reason not to use global variables.

mfg, simon … l
