Storage.pm line 1596 (getListOfWebs):
@webList =
grep {
$security->checkAccessPermission( 'view', $user, undef, undef, $_ )
} @webList;
Depending on the UserMapping-module there might be a lot of code behind checkAccessPermission(). The code above depends on $_ not being changed by the called code. Please change it to something along the lines of
my @wl;
foreach (@webList) {
push ( @wl, $_ ) if $security->checkAccessPermission( 'view', $user, undef, undef, $_ );
}
@webList = @wl;
I know its not half as elegant but much safer. And its quite hard to diagnose if you are bit by this.
Huh? $_ is a local variable - it is scoped by the context it is called within. For example, try this:
my @blah = (
[ 'A', 'a', 'B' ],
[ 'X', 'y', 'z' ],
);
foreach (@blah) {
print join(',', grep {$_ =~ /[A-Z]/} @$_),"\n";
}
While I agree that $_ is a horrible concept, there is nothing wrong with the above code. Discarded.
CC