in reply to getting server names in the domain and looking up ips

This will get rid of the terminal $ for you. It is also a good idea to specify a path when opening files.

use Win32::NetAdmin; my $path = 'c:'; my $file = 'list.txt'; open ( OUT, ">$path/$file" ) || die "Cannot create machine list. :$!"; my @users; Win32::NetAdmin::GetUsers("\\\\PDC",'',\@users); my @computers = grep { /\$$/ } @users; for my $box (@computers) { chop $box; # removes terminal char, must be $ from grep print OUT "$box\n"; # print each $box on a newline } close OUT;

In the second script you read from a file using a while loop but never look at the contents of that file! Each line will be assigned to $_ in turn. You need to chomp off the newline as well.

while (<IN>) { my $line = $_; chomp $line; # now do something with $line which we got from the file }

As a final note the join is not doing what I think you think it is doing :-) Join returns a scalar not a list thus assigning it to an array does not make. You will note that after the join the whole array is in element 0.

@ary = qw(1 2 3 4 5); print "first ", $ary[0], "\n"; @ary = join("\n",@ary); print "second", $ary[0], "\n";

Hope this helps

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print