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
|
|---|