これは StackOverFlow に関する私の最初の質問です。何か間違ったことをした場合はお知らせください。
これが私のスクリプトです:
#!/usr/bin/perl
use Net::LDAP;
use warnings;
use strict;
my($user,$ldap,$mesg,$info,$entry,$x,$y);
$user = $ARGV[0];
$ldap = Net::LDAP->new ("dirproxy.paychex.com") or die "$@";
$mesg = $ldap->search(filter=>"(uid=$user)", base=>"ou=people,o=paychex inc,c=us");
print $mesg; #hash of entry
$info = "$user,,";
$x=$y=' ';
foreach $entry ($mesg->entry)
{
print "hello?";
if(length $entry->get_value("payxlocation")) #if > 0
{
$x = $entry->get_value("payxlocation");
$x =~ s/,//g;
}
if(length $entry->get_value("organization")) #if > 0
{
$y = $entry->get_value("organization");
$y =~ s/,//g;
}
$info = "$user,$x,$y";
}
print $info;
$info を出力すると、"user,," が出力されます。問題は私の foreach ステートメントにあるようです
foreach $entry ($mesg->entry)
「$mesg->entry」は空であるため、foreach をスキップし、追加情報なしでユーザーを出力します。