diff --git a/fon/fon.pl b/fon/fon.pl index c7c1185..4047ce0 100755 --- a/fon/fon.pl +++ b/fon/fon.pl @@ -5,12 +5,12 @@ use Encode; use utf8; -binmode(STDOUT, ":utf8"); +binmode( STDOUT, ":utf8" ); my %multichar; my %escapechar; -my $cache = 'ldap.dump'; +my $cache = 'ldap.dump'; my $USECACHE = 0; my %L; @@ -21,7 +21,7 @@ get_ldap_addressbook( \%L ); -for my $l ( sort { lc( $L{$a}->{sn} ) cmp lc( $L{$b}->{sn} ) } keys %L ) { +for my $l ( sort { lc s2a( $L{$a}->{sn}[0] ) cmp lc s2a( $L{$b}->{sn}[0] ) } keys %L ) { if ( match_entry( $SRCH, $L{$l} ) >= 0 ) { push_entry( $L{$l} ); } @@ -29,15 +29,14 @@ my @order = ( 'name', 'room', 'fone', 'mail' ); -exit unless exists($O{name}); +exit unless exists( $O{name} ); -my $e = scalar( @{ $O{name} } ) - 1 ; +my $e = scalar( @{ $O{name} } ) - 1; for my $i ( 0 .. $e ) { for my $k (@order) { - printf "%-*s ",$M{$k}, $O{$k}[$i]; -# print substr( $O{$k}[$i] . ( '.' x $M{$k}) , 0, $M{$k} ) . ' '; + printf "%-*s ", $O{ $k . '_l' }, $O{$k}[$i]; } printf "\n"; @@ -63,7 +62,7 @@ sub simplify { } sub len { - return length(Encode::encode_utf8(shift)); + return length( Encode::encode_utf8(shift) ); } sub push_entry { @@ -73,23 +72,22 @@ sub push_entry { $t = join( '/', @{ $e->{sn} } ) . ", " . join( '/', @{ $e->{givenName} } ); $l = len($t); push @{ $O{name} }, $t; - $l > ( $M{name} || 0 ) and $M{name} = $l; + $l > ( $O{name_l} || 0 ) and $O{name_l} = $l; - - $t = join( '/', map {s/\(.*?\)|Betriebsarztraum|\s+//g;$_} @{ $e->{roomNumber} } ); + $t = join( '/', map { s/\(.*?\)|Betriebsarztraum|\s+//g; $_ } @{ $e->{roomNumber} } ); $l = len($t); push @{ $O{room} }, $t; - $l > ( $M{room} || 0 ) and $M{room} = $l; + $l > ( $O{room_l} || 0 ) and $O{room_l} = $l; - $t = join( '/', map {s/\(.*?\)|\s+//g;s/\+49/0/;$_} @{ $e->{telephoneNumber} } ); + $t = join( '/', map { s/\(.*?\)|\s+//g; s/\+49/0/; $_ } @{ $e->{telephoneNumber} } ); $l = len($t); push @{ $O{fone} }, $t; - $l > ( $M{fone} || 0 ) and $M{fone} = $l; + $l > ( $O{fone_l} || 0 ) and $O{fone_l} = $l; - $t = join( ', ', map {s/molgen\.mpg\.de//g;$_} @{ $e->{mail} } ); + $t = join( ', ', map { s/molgen\.mpg\.de//g; $_ } @{ $e->{mail} } ); $l = len($t); push @{ $O{mail} }, $t; - $l > ( $M{mail} || 0 ) and $M{mail} = $l; + $l > ( $O{mail_l} || 0 ) and $O{mail_l} = $l; } sub exec_ldapsearch { @@ -144,7 +142,7 @@ sub get_ldap_addressbook { } map { if ( my ( $op, $v ) = $l =~ m{^$_(::?)\s*(.+)} ) { - $op eq '::' and $v = decode('utf8',decode_base64($v)); + $op eq '::' and $v = decode( 'utf8', decode_base64($v) ); die "$uid -> $_\n" unless defined($v); push @{ $$L{$uid}->{$_} }, $v; }