manpagez: man pages & more
man Perl::Critic::Policy::Subroutines::ProhibitReturnSort(3)
Home | html | info | man
Perl::Critic::Policy::Subroutines::ProhibitReturnSort(3)



NAME

       Perl::Critic::Policy::Subroutines::ProhibitReturnSort - Behavior of
       "sort" is not defined if called in scalar context.


AFFILIATION

       This Policy is part of the core Perl::Critic distribution.


DESCRIPTION

       The behavior of the builtin "sort" function is not defined if called in
       scalar context.  So if you write a subroutine that directly "return"s
       the result of a "sort" operation, then you code will behave
       unpredictably if someone calls your subroutine in a scalar context.
       This Policy emits a violation if the "return" keyword is directly
       followed by the "sort" function.  To safely return a sorted list of
       values from a subroutine, you should assign the sorted values to a
       temporary variable first.  For example:

          sub frobulate {

              return sort @list;  # not ok!

              my @sorted_list = sort @list;
              return @sorted_list # OK
          }


KNOWN BUGS

       This Policy is not sensitive to the "wantarray" function.  So the
       following code would generate a false violation:

          sub frobulate {

              if (wantarray) {
                  return sort @list;
              }
              else{
                  return join @list;
              }
          }


CONFIGURATION

       This Policy is not configurable except for the standard options.


CREDITS

       This Policy was suggested by Ulrich Wisser and the <http://iis.se>
       team.


AUTHOR

       Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>


COPYRIGHT

       Copyright (c) 2005-2017 Imaginative Software Systems.  All rights
       reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  The full text of this license can
       be found in the LICENSE file included with this module.




perl v5.28.2          Perl::Critic::Policy::Subroutines::ProhibitReturnSort(3)

perl-critic 1.134.0 - Generated Tue Jun 4 15:02:37 CDT 2019
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.