On Wed, Oct 6, 2010 at 22:41, Thomas Adam <thomas@xxxxxxxxxx> wrote: > On 6 October 2010 23:01, Jakub Narebski <jnareb@xxxxxxxxx> wrote: >> +# creates get_depth() and set_depth($depth) etc. methods >> +foreach my $i (qw(depth root namespace)) { >> + Â Â Â my $field = $i; >> + Â Â Â no strict 'refs'; > > For each item, you'll set "no strict refs"? ÂThis might be better off > outside the loop. ÂIt's still scoped appropriately inside the > subroutine. > >> + Â Â Â my $file = $self->path_to_key($key); >> + Â Â Â return undef unless (defined $file && -f $file); > > PBP (Perl Best Practises) will tell you that explicitly returning > undef is discouraged -- "undef" should be reserved for those errors > you cannot handle, not ones you don't want to. [...] >> + Â Â Â return unless (defined $key && defined $data); > > return what? false. You're right that "return undef;" is bad style, but "return;" is what you should use instead. Then you'll get undef in scalar context, and an empty list in list context. With "return undef" you'll always get an undef, so: sub blah { retur undef } my (@foo) = blah(); Will make @foo = (undef), which'll make it evaluate to true in scalar context since there's an item in the array, and give you a useless array item. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html