[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: commit: ldap/servers/slapd/back-perl SampleLDAP.pm



<quote who="Hallvard B Furuseth">
> I wrote:
>>Gavin Henry writes:
>>> I've run Perl::Critic over this and fixed/updated to latest "Perl Best
>>> Practices". We might as well have an up to date sample.
>>>
>>> Do you mind if I commit my changes?
>>
>> My impression is that back-perl hovers on the verge of code rot, and any
>> change is likely for the better.
>
> Er... not this one, though:-(  Our Perl version (5.8.8) interprets
>     print <STDERR>, "Here in new\n";
> as "read data from STDERR, then print that and the argument string to
> STDOUT".  Is this some bleeding edge change to Perl?

Nope, you are right. My mistake. It does work, but should be:

print {*STDERR} "Here in new\n";


Example:

  1 #!/usr/bin/perl
  2 use strict;
  3 use warnings;
  4
  5 print <STDERR>, "Here in new\n";
  6 print {*STDERR} "Here in new\n";
  7 print STDERR "Here in new\n";

Output:

Filehandle STDERR opened only for output at ./test.pl line 5.
Here in new
Here in new
Here in new

See:

http://search.cpan.org/~thaljef/Perl-Critic-1.06/lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm

>
> Also I think the initial 'package' and 'use' statements should go below
> the comment at the top,

Sure, done.

> and I'm not sure how new the "our" keyword is.

http://perldoc.perl.org/perl56delta.html#%22our%22-declarations

5.6

Also, see why it's used:

http://search.cpan.org/~thaljef/Perl-Critic-1.06/lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm

> I suspect there are some pretty old Perl versions out there, in
> particular on Windows.

We should change it to:

$SampleLDAP::VERSION = '1.00';

That will work on any 5+ version of Perl.

I've made the changes ready for commit.

Gavin.

>
> --
> Hallvard
>