]> granicus.if.org Git - postgresql/commitdiff
Don't fall off the end of perl functions
authorAndrew Dunstan <andrew@dunslane.net>
Sun, 27 May 2018 13:08:42 +0000 (09:08 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Sun, 27 May 2018 13:08:42 +0000 (09:08 -0400)
This complies with the perlcritic policy
Subroutines::RequireFinalReturn, which is a severity 4 policy. Since we
only currently check at severity level 5, the policy is raised to that
level until we move to level 4 or lower, so that any new infringements
will be caught.

A small cosmetic piece of tidying of the pgperlcritic script is
included.

Mike Blackwell

Discussion: https://postgr.es/m/CAESHdJpfFm_9wQnQ3koY3c91FoRQsO-fh02za9R3OEMndOn84A@mail.gmail.com

47 files changed:
contrib/bloom/t/001_wal.pl
contrib/intarray/bench/create_test.pl
src/backend/catalog/Catalog.pm
src/backend/catalog/genbki.pl
src/backend/parser/check_keywords.pl
src/backend/utils/mb/Unicode/convutils.pm
src/backend/utils/sort/gen_qsort_tuple.pl
src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl
src/bin/pg_rewind/RewindTest.pm
src/bin/pg_rewind/t/001_basic.pl
src/bin/pg_rewind/t/002_databases.pl
src/bin/pg_rewind/t/003_extrafiles.pl
src/bin/pg_rewind/t/004_pg_xlog_symlink.pl
src/bin/pgbench/t/001_pgbench_with_server.pl
src/bin/pgbench/t/002_pgbench_no_server.pl
src/include/catalog/reformat_dat_file.pl
src/interfaces/ecpg/preproc/parse.pl
src/pl/plperl/plc_perlboot.pl
src/pl/plperl/text2macro.pl
src/test/authentication/t/001_password.pl
src/test/authentication/t/002_saslprep.pl
src/test/kerberos/t/001_auth.pl
src/test/ldap/t/001_auth.pl
src/test/perl/PostgresNode.pm
src/test/perl/SimpleTee.pm
src/test/perl/TestLib.pm
src/test/recovery/t/001_stream_rep.pl
src/test/recovery/t/003_recovery_targets.pl
src/test/recovery/t/007_sync_rep.pl
src/test/recovery/t/009_twophase.pl
src/test/ssl/ServerSetup.pm
src/tools/copyright.pl
src/tools/git_changelog
src/tools/msvc/Install.pm
src/tools/msvc/MSBuildProject.pm
src/tools/msvc/Mkvcbuild.pm
src/tools/msvc/Project.pm
src/tools/msvc/Solution.pm
src/tools/msvc/VCBuildProject.pm
src/tools/msvc/builddoc.pl
src/tools/msvc/gendef.pl
src/tools/msvc/vcregress.pl
src/tools/pginclude/pgcheckdefines
src/tools/pgindent/pgindent
src/tools/pgperlcritic/perlcriticrc
src/tools/pgperlcritic/pgperlcritic
src/tools/version_stamp.pl

index 55f2167d7fac8c066538d03f61de26a2e4eadd84..0f2628b5575f3d4530cbee9fbc0f785940435e32 100644 (file)
@@ -36,6 +36,7 @@ SELECT * FROM tst WHERE i = 7 AND t = 'e';
        my $standby_result = $node_standby->safe_psql("postgres", $queries);
 
        is($master_result, $standby_result, "$test_name: query result matches");
+       return;
 }
 
 # Initialize master node
index f3262df05b25aa1b2ce4a41d6a0aad766a8a560c..d2c678bb53c3fcb257aa6e24898a4cd44195584d 100755 (executable)
@@ -83,4 +83,5 @@ sub copytable
        while (<$fff>) { print; }
        close $fff;
        print "\\.\n";
+       return;
 }
index 95bf619c9124028209fbe721066367f6165a81f6..ae5b499b6adca3029b61b01be3027e7f06749166 100644 (file)
@@ -367,6 +367,7 @@ sub RenameTempFile
        {
                rename($temp_name, $final_name) || die "rename: $temp_name: $!";
        }
+       return;
 }
 
 # Find a symbol defined in a particular header file and extract the value.
index ebdc919414fbd6c7e158940cfbbe27430e915842..9be51d28b038d25037639b300a4ab63f661505df 100644 (file)
@@ -649,6 +649,7 @@ sub gen_pg_attribute
                        }
                }
        }
+       return;
 }
 
 # Given $pgattr_schema (the pg_attribute schema for a catalog sufficient for
@@ -706,6 +707,7 @@ sub morph_row_for_pgattr
        }
 
        Catalog::AddDefaultValues($row, $pgattr_schema, 'pg_attribute');
+       return;
 }
 
 # Write an entry to postgres.bki.
@@ -744,6 +746,7 @@ sub print_bki_insert
                push @bki_values, $bki_value;
        }
        printf $bki "insert %s( %s )\n", $oid, join(' ', @bki_values);
+       return;
 }
 
 # Given a row reference, modify it so that it becomes a valid entry for
@@ -786,6 +789,7 @@ sub morph_row_for_schemapg
                # Only the fixed-size portions of the descriptors are ever used.
                delete $row->{$attname} if $column->{is_varlen};
        }
+       return;
 }
 
 # Perform OID lookups on an array of OID names.
index ad41e134ac2e5d8c23889f3b0e834ebc625479bf..718441c2151431a0735c89506e204f7efa4c5357 100644 (file)
@@ -18,6 +18,7 @@ sub error
 {
        print STDERR @_;
        $errors = 1;
+       return;
 }
 
 $, = ' ';     # set output field separator
index 69ec099f29e9019e7be4b5dc71d273b1662cf336..103bd0264e5448f49282d81e653bd32739ab122c 100644 (file)
@@ -99,6 +99,7 @@ sub print_conversion_tables
                $charset);
        print_conversion_tables_direction($this_script, $csname, TO_UNICODE,
                $charset);
+       return;
 }
 
 #############################################################################
@@ -160,6 +161,7 @@ sub print_conversion_tables_direction
        }
 
        close($out);
+       return;
 }
 
 sub print_from_utf8_combined_map
@@ -194,6 +196,7 @@ sub print_from_utf8_combined_map
        }
        print $out "\t/* $last_comment */" if ($verbose && $last_comment ne "");
        print $out "\n};\n";
+       return;
 }
 
 sub print_to_utf8_combined_map
@@ -230,6 +233,7 @@ sub print_to_utf8_combined_map
        }
        print $out "\t/* $last_comment */" if ($verbose && $last_comment ne "");
        print $out "\n};\n";
+       return;
 }
 
 #######################################################################
@@ -625,6 +629,7 @@ sub print_radix_table
        if ($off != $tblsize) { die "table size didn't match!"; }
 
        print $out "};\n";
+       return;
 }
 
 ###
index 6186d0a5babda42aea2b72efb2fb50e890812aa0..b6b2ffa7d0be161a0b474034dd247c6bd111ddb3 100644 (file)
@@ -130,6 +130,8 @@ swapfunc(SortTuple *a, SortTuple *b, size_t n)
 #define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n)
 
 EOM
+
+       return;
 }
 
 sub emit_qsort_implementation
@@ -263,4 +265,6 @@ loop:
        }
 }
 EOM
+
+       return;
 }
index c84674c00ac24863842e63d64ad36e6af7e329cc..22782d304207be3c66d191d02d4b4d6a7b2a2742 100644 (file)
@@ -21,6 +21,7 @@ sub create_files
                print $file 'CONTENT';
                close $file;
        }
+       return;
 }
 
 create_files();
@@ -89,6 +90,7 @@ sub run_check
                "$test_name: newer WAL file was not cleaned up");
        ok(-f "$tempdir/unrelated_file",
                "$test_name: unrelated file was not cleaned up");
+       return;
 }
 
 run_check('',                 'pg_archivecleanup');
index 52531bba7a3e5f66df55ca817da1c3492735fbf9..60b54119e7a743165820c66404bab103d17185c1 100644 (file)
@@ -71,6 +71,7 @@ sub master_psql
 
        system_or_bail 'psql', '-q', '--no-psqlrc', '-d',
          $node_master->connstr('postgres'), '-c', "$cmd";
+       return;
 }
 
 sub standby_psql
@@ -79,6 +80,7 @@ sub standby_psql
 
        system_or_bail 'psql', '-q', '--no-psqlrc', '-d',
          $node_standby->connstr('postgres'), '-c', "$cmd";
+       return;
 }
 
 # Run a query against the master, and check that the output matches what's
@@ -112,6 +114,7 @@ sub check_query
                $stdout =~ s/\r//g if $Config{osname} eq 'msys';
                is($stdout, $expected_stdout, "$test_name: query result matches");
        }
+       return;
 }
 
 sub setup_cluster
@@ -130,6 +133,7 @@ sub setup_cluster
                'postgresql.conf', qq(
 wal_keep_segments = 20
 ));
+       return;
 }
 
 sub start_master
@@ -138,6 +142,8 @@ sub start_master
 
        #### Now run the test-specific parts to initialize the master before setting
        # up standby
+
+       return;
 }
 
 sub create_standby
@@ -162,6 +168,8 @@ recovery_target_timeline='latest'
 
        # The standby may have WAL to apply before it matches the primary.  That
        # is fine, because no test examines the standby before promotion.
+
+       return;
 }
 
 sub promote_standby
@@ -183,6 +191,8 @@ sub promote_standby
        # after promotion so quickly that when pg_rewind runs, the standby has not
        # performed a checkpoint after promotion yet.
        standby_psql("checkpoint");
+
+       return;
 }
 
 sub run_pg_rewind
@@ -266,6 +276,8 @@ recovery_target_timeline='latest'
        $node_master->start;
 
        #### Now run the test-specific parts to check the result
+
+       return;
 }
 
 # Clean up after the test. Stop both servers, if they're still running.
@@ -273,6 +285,7 @@ sub clean_rewind_test
 {
        $node_master->teardown_node  if defined $node_master;
        $node_standby->teardown_node if defined $node_standby;
+       return;
 }
 
 1;
index 87bb71e8ed3d165b7adddfedb7be66328a9418e0..53dbf45be29d394e53e4bd78710e72f70f257058 100644 (file)
@@ -97,6 +97,7 @@ in master, before promotion
        }
 
        RewindTest::clean_rewind_test();
+       return;
 }
 
 # Run the test in both modes
index bef0e173dcaec6729bc8f1797d4bb534ef0e90c5..2c9e427831139ac4cc7235298fcb76965bb80bd2 100644 (file)
@@ -53,6 +53,7 @@ template1
        }
 
        RewindTest::clean_rewind_test();
+       return;
 }
 
 # Run the test in both modes.
index 8b469cdae8c7b1cab2bf0f4d1bf544951e472ebc..496f38c4570c52eef1d5db41d86f420cab18b7fb 100644 (file)
@@ -81,6 +81,7 @@ sub run_test
                "file lists match");
 
        RewindTest::clean_rewind_test();
+       return;
 }
 
 # Run the test in both modes.
index feadaa6a0ff6e33f837508813d45c29f2a6120ca..280eceb9929f41791453c47b095921d9bd96e96c 100644 (file)
@@ -72,6 +72,7 @@ in standby, after promotion
                'table content');
 
        RewindTest::clean_rewind_test();
+       return;
 }
 
 # Run the test in both modes
index 00fb04fe1ef9799623022be390b9f324534cc4bf..b9308f7367b1ed338534edf978fc3a0b7d2793f6 100644 (file)
@@ -42,6 +42,8 @@ sub pgbench
 
        # cleanup?
        #unlink @filenames or die "cannot unlink files (@filenames): $!";
+
+       return;
 }
 
 # Test concurrent insertion into table with UNIQUE oid column.  DDL expects
@@ -817,6 +819,7 @@ sub check_pgbench_logs
                };
        }
        ok(unlink(@logs), "remove log files");
+       return;
 }
 
 my $bdir = $node->basedir;
index a9e067ba4e49c0b374a7a451799e7c8668362e6d..aa47710ace5a3cf9801fec2da4923c2e1c35319e 100644 (file)
@@ -24,6 +24,7 @@ sub pgbench
        print STDERR "opts=$opts, stat=$stat, out=$out, err=$err, name=$name";
        command_checks_all([ 'pgbench', split(/\s+/, $opts) ],
                $stat, $out, $err, $name);
+       return;
 }
 
 # invoke pgbench with scripts
@@ -48,6 +49,7 @@ sub pgbench_scripts
                }
        }
        command_checks_all(\@cmd, $stat, $out, $err, $name);
+       return;
 }
 
 #
index 7f6dc6e4c5b2a9eff0b14be69ad2fee5ff19d4b9..687aca0b16484c31784a1f36581e0df918087492 100755 (executable)
@@ -207,6 +207,7 @@ sub strip_default_values
        {
                delete $row->{pronargs} if defined $row->{proargtypes};
        }
+       return;
 }
 
 # Format the individual elements of a Perl hash into a valid string
index 983c3a3d89f92322690d5d07ba97ac241434d3c7..b20383ab17a2228cad71dfa4eda1b3eb0440fb4d 100644 (file)
@@ -415,6 +415,7 @@ sub main
                        }
                }
        }
+       return;
 }
 
 
@@ -431,6 +432,7 @@ sub include_file
                add_to_buffer($buffer, $_);
        }
        close($fh);
+       return;
 }
 
 sub include_addon
@@ -472,6 +474,7 @@ sub include_addon
 sub add_to_buffer
 {
        push(@{ $buff{ $_[0] } }, "$_[1]\n");
+       return;
 }
 
 sub dump_buffer
@@ -480,6 +483,7 @@ sub dump_buffer
        print '/* ', $buffer, ' */', "\n";
        my $ref = $buff{$buffer};
        print @$ref;
+       return;
 }
 
 sub dump_fields
@@ -582,6 +586,7 @@ sub dump_fields
                        add_to_buffer('rules', ' { $$ = NULL; }');
                }
        }
+       return;
 }
 
 
@@ -673,4 +678,5 @@ sub preload_addons
                        push(@{ $x->{lines} }, @code);
                }
        }
+       return;
 }
index 05334a662d3317fb2c3dbd9b91acead3c58ba00d..f41aa80e80b062943d155494c32f5ff24dd1ec04 100644 (file)
@@ -62,6 +62,7 @@ sub ::encode_array_constructor
                (my $msg = shift) =~ s/\(eval \d+\) //g;
                chomp $msg;
                &::elog(&::WARNING, $msg);
+               return;
        }
        $SIG{__WARN__} = \&plperl_warn;
 
index 27c6ef7e4275c37f10fc3a8218b054d0a22a6865..52fcbe1be1c8261d9f1eda7020d7b7d36535c697 100644 (file)
@@ -99,4 +99,5 @@ sub selftest
        warn "Test string: $string\n";
        warn "Result     : $result";
        die "Failed!" if $result ne "$string\n";
+       return;
 }
index c8dc6606be968511fcb820bfc49b8c0d9aba65f7..3a3b0eb7e80c1923699b943202f46646ea7ef15d 100644 (file)
@@ -31,6 +31,7 @@ sub reset_pg_hba
        unlink($node->data_dir . '/pg_hba.conf');
        $node->append_conf('pg_hba.conf', "local all all $hba_method");
        $node->reload;
+       return;
 }
 
 # Test access for a single role, useful to wrap all tests into one.
@@ -47,6 +48,7 @@ sub test_role
        my $res = $node->psql('postgres', undef, extra_params => [ '-U', $role ]);
        is($res, $expected_res,
                "authentication $status_string for method $method, role $role");
+       return;
 }
 
 # Initialize master node
index e09273edd4663b7f6613d1b8f7a36fbedbfeedd5..c4b335c45fe986a66e71446eec871ecdc0247d0d 100644 (file)
@@ -27,6 +27,7 @@ sub reset_pg_hba
        unlink($node->data_dir . '/pg_hba.conf');
        $node->append_conf('pg_hba.conf', "local all all $hba_method");
        $node->reload;
+       return;
 }
 
 # Test access for a single role, useful to wrap all tests into one.
@@ -45,6 +46,7 @@ sub test_login
        is($res, $expected_res,
                "authentication $status_string for role $role with password $password"
        );
+       return;
 }
 
 # Initialize master node. Force UTF-8 encoding, so that we can use non-ASCII
index 5e638eb2eb498e2f9c08789562f32888caddf518..54f564779d663d82519ccf1663764186471f1b0d 100644 (file)
@@ -164,6 +164,7 @@ sub test_access
                        '-U', $role
                ]);
        is($res, $expected_res, $test_name);
+       return;
 }
 
 unlink($node->data_dir . '/pg_hba.conf');
index 9ade9a2b000d381bfe12b1f8bc345196afc817fc..67b406c981b360439882788fc7346078441f433e 100644 (file)
@@ -144,6 +144,7 @@ sub test_access
        my $res =
          $node->psql('postgres', 'SELECT 1', extra_params => [ '-U', $role ]);
        is($res, $expected_res, $test_name);
+       return;
 }
 
 note "simple bind";
index 82a2611a1e9fa41b6e9b468eae6f6a567fd2359a..d12dd60e732a9cf2a2c9b4dc7a8fb9adee6d3832 100644 (file)
@@ -372,6 +372,7 @@ sub dump_info
 {
        my ($self) = @_;
        print $self->info;
+       return;
 }
 
 
@@ -393,6 +394,7 @@ sub set_replication_conf
                  "host replication all $test_localhost/32 sspi include_realm=1 map=regress\n";
        }
        close $hba;
+       return;
 }
 
 =pod
@@ -487,6 +489,7 @@ sub init
 
        $self->set_replication_conf if $params{allows_streaming};
        $self->enable_archiving     if $params{has_archiving};
+       return;
 }
 
 =pod
@@ -512,6 +515,8 @@ sub append_conf
 
        chmod($self->group_access() ? 0640 : 0600, $conffile)
          or die("unable to set permissions for $conffile");
+
+       return;
 }
 
 =pod
@@ -538,6 +543,7 @@ sub backup
        TestLib::system_or_bail('pg_basebackup', '-D', $backup_path, '-p', $port,
                '--no-sync');
        print "# Backup finished\n";
+       return;
 }
 
 =item $node->backup_fs_hot(backup_name)
@@ -556,6 +562,7 @@ sub backup_fs_hot
 {
        my ($self, $backup_name) = @_;
        $self->_backup_fs($backup_name, 1);
+       return;
 }
 
 =item $node->backup_fs_cold(backup_name)
@@ -572,6 +579,7 @@ sub backup_fs_cold
 {
        my ($self, $backup_name) = @_;
        $self->_backup_fs($backup_name, 0);
+       return;
 }
 
 
@@ -612,6 +620,7 @@ sub _backup_fs
        }
 
        print "# Backup finished\n";
+       return;
 }
 
 
@@ -672,6 +681,7 @@ port = $port
 ));
        $self->enable_streaming($root_node) if $params{has_streaming};
        $self->enable_restoring($root_node) if $params{has_restoring};
+       return;
 }
 
 =pod
@@ -703,6 +713,7 @@ sub start
        }
 
        $self->_update_pid(1);
+       return;
 }
 
 =pod
@@ -728,6 +739,7 @@ sub stop
        print "### Stopping node \"$name\" using mode $mode\n";
        TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-m', $mode, 'stop');
        $self->_update_pid(0);
+       return;
 }
 
 =pod
@@ -746,6 +758,7 @@ sub reload
        my $name   = $self->name;
        print "### Reloading node \"$name\"\n";
        TestLib::system_or_bail('pg_ctl', '-D', $pgdata, 'reload');
+       return;
 }
 
 =pod
@@ -767,6 +780,7 @@ sub restart
        TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-l', $logfile,
                'restart');
        $self->_update_pid(1);
+       return;
 }
 
 =pod
@@ -787,6 +801,7 @@ sub promote
        print "### Promoting node \"$name\"\n";
        TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-l', $logfile,
                'promote');
+       return;
 }
 
 # Internal routine to enable streaming replication on a standby node.
@@ -802,6 +817,7 @@ sub enable_streaming
 primary_conninfo='$root_connstr application_name=$name'
 standby_mode=on
 ));
+       return;
 }
 
 # Internal routine to enable archive recovery command on a standby node
@@ -830,6 +846,7 @@ sub enable_restoring
 restore_command = '$copy_command'
 standby_mode = on
 ));
+       return;
 }
 
 # Internal routine to enable archiving
@@ -859,6 +876,7 @@ sub enable_archiving
 archive_mode = on
 archive_command = '$copy_command'
 ));
+       return;
 }
 
 # Internal method
@@ -885,6 +903,7 @@ sub _update_pid
 
        # Complain if we expected to find a pidfile.
        BAIL_OUT("postmaster.pid unexpectedly not present") if $is_running;
+       return;
 }
 
 =pod
@@ -1014,7 +1033,7 @@ sub teardown_node
        my $self = shift;
 
        $self->stop('immediate');
-
+       return;
 }
 
 =pod
@@ -1030,6 +1049,7 @@ sub clean_node
        my $self = shift;
 
        rmtree $self->{_basedir} unless defined $self->{_pid};
+       return;
 }
 
 =pod
@@ -1351,6 +1371,7 @@ sub command_ok
        local $ENV{PGPORT} = $self->port;
 
        TestLib::command_ok(@_);
+       return;
 }
 
 =pod
@@ -1368,6 +1389,7 @@ sub command_fails
        local $ENV{PGPORT} = $self->port;
 
        TestLib::command_fails(@_);
+       return;
 }
 
 =pod
@@ -1385,6 +1407,7 @@ sub command_like
        local $ENV{PGPORT} = $self->port;
 
        TestLib::command_like(@_);
+       return;
 }
 
 =pod
@@ -1402,6 +1425,7 @@ sub command_checks_all
        local $ENV{PGPORT} = $self->port;
 
        TestLib::command_checks_all(@_);
+       return;
 }
 
 =pod
@@ -1427,6 +1451,7 @@ sub issues_sql_like
        ok($result, "@$cmd exit code 0");
        my $log = TestLib::slurp_file($self->logfile);
        like($log, $expected_sql, "$test_name: SQL found in server log");
+       return;
 }
 
 =pod
@@ -1445,6 +1470,7 @@ sub run_log
        local $ENV{PGPORT} = $self->port;
 
        TestLib::run_log(@_);
+       return;
 }
 
 =pod
@@ -1548,6 +1574,7 @@ sub wait_for_catchup
        $self->poll_query_until('postgres', $query)
          or croak "timed out waiting for catchup";
        print "done\n";
+       return;
 }
 
 =pod
@@ -1590,6 +1617,7 @@ sub wait_for_slot_catchup
        $self->poll_query_until('postgres', $query)
          or croak "timed out waiting for catchup";
        print "done\n";
+       return;
 }
 
 =pod
index ea2f2ee82871004e581a25fbdcd1a81d7cf27c30..9de7b1ac323a1484eabf3e29ac769fa03352eed4 100644 (file)
@@ -13,7 +13,7 @@ use strict;
 sub TIEHANDLE
 {
        my $self = shift;
-       bless \@_, $self;
+       return bless \@_, $self;
 }
 
 sub PRINT
index c9f824b4c65f325281e566faacfddb456e2351c7..77499c01e969ef25ceb108918bd36d2e5a82c0b3 100644 (file)
@@ -194,6 +194,7 @@ sub system_or_bail
        {
                BAIL_OUT("system $_[0] failed");
        }
+       return;
 }
 
 sub run_log
@@ -244,6 +245,7 @@ sub append_to_file
          or die "could not write \"$filename\": $!";
        print $fh $str;
        close $fh;
+       return; 
 }
 
 # Check that all file/dir modes in a directory match the expected values,
@@ -338,6 +340,7 @@ sub chmod_recursive
                        }
                },
                $dir);
+       return;
 }
 
 # Check presence of a given regexp within pg_config.h for the installation
@@ -366,6 +369,7 @@ sub command_ok
        my ($cmd, $test_name) = @_;
        my $result = run_log($cmd);
        ok($result, $test_name);
+       return;
 }
 
 sub command_fails
@@ -373,6 +377,7 @@ sub command_fails
        my ($cmd, $test_name) = @_;
        my $result = run_log($cmd);
        ok(!$result, $test_name);
+       return;
 }
 
 sub command_exit_is
@@ -394,6 +399,7 @@ sub command_exit_is
          ? ($h->full_results)[0]
          : $h->result(0);
        is($result, $expected, $test_name);
+       return;
 }
 
 sub program_help_ok
@@ -406,6 +412,7 @@ sub program_help_ok
        ok($result, "$cmd --help exit code 0");
        isnt($stdout, '', "$cmd --help goes to stdout");
        is($stderr, '', "$cmd --help nothing to stderr");
+       return;
 }
 
 sub program_version_ok
@@ -418,6 +425,7 @@ sub program_version_ok
        ok($result, "$cmd --version exit code 0");
        isnt($stdout, '', "$cmd --version goes to stdout");
        is($stderr, '', "$cmd --version nothing to stderr");
+       return;
 }
 
 sub program_options_handling_ok
@@ -430,6 +438,7 @@ sub program_options_handling_ok
          '2>', \$stderr;
        ok(!$result, "$cmd with invalid option nonzero exit code");
        isnt($stderr, '', "$cmd with invalid option prints error message");
+       return;
 }
 
 sub command_like
@@ -441,6 +450,7 @@ sub command_like
        ok($result, "$test_name: exit code 0");
        is($stderr, '', "$test_name: no stderr");
        like($stdout, $expected_stdout, "$test_name: matches");
+       return;
 }
 
 sub command_like_safe
@@ -460,6 +470,7 @@ sub command_like_safe
        ok($result, "$test_name: exit code 0");
        is($stderr, '', "$test_name: no stderr");
        like($stdout, $expected_stdout, "$test_name: matches");
+       return;
 }
 
 sub command_fails_like
@@ -470,6 +481,7 @@ sub command_fails_like
        my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr;
        ok(!$result, "$test_name: exit code not 0");
        like($stderr, $expected_stderr, "$test_name: matches");
+       return;
 }
 
 # Run a command and check its status and outputs.
@@ -509,6 +521,8 @@ sub command_checks_all
        {
                like($stderr, $re, "$test_name stderr /$re/");
        }
+       
+       return;
 }
 
 1;
index a29a6c720ba884b104dfa4af414d06cdae7a9af8..a0d3e8f3572ce90dd67148eede453397155c2e57 100644 (file)
@@ -97,6 +97,8 @@ sub test_target_session_attrs
                1,
                "connect to node $target_name if mode \"$mode\" and $node1_name,$node2_name listed"
        );
+
+       return;
 }
 
 # Connect to master in "read-write" mode with master,standby1 list.
@@ -195,6 +197,7 @@ sub replay_check
        $node_standby_2->safe_psql('postgres',
                qq[SELECT 1 FROM replayed WHERE val = $newval])
          or die "standby_2 didn't replay standby_1 value $newval";
+       return;
 }
 
 replay_check();
index 824fa4da529f5e71b1418d936c2eca3b8491b676..e867479f2061f60930bf351ee6d8e41fb8e69341 100644 (file)
@@ -41,6 +41,8 @@ sub test_recovery_standby
 
        # Stop standby node
        $node_standby->teardown_node;
+
+       return;
 }
 
 # Initialize master node
index 0ddf70b8b82ce750ba6794be581daec2ddeae59d..bba47da17a4d498d6c69a1db5666d16d0afdd79c 100644 (file)
@@ -24,6 +24,7 @@ sub test_sync_state
        }
 
        ok($self->poll_query_until('postgres', $check_sql, $expected), $msg);
+       return;
 }
 
 # Initialize master node
index 93c22d181c45e33a8b042a87ea4d5ff5815c6480..9ea3bd65fc1ee59d070e35203ab3dd6ba7f02dae 100644 (file)
@@ -20,6 +20,7 @@ sub configure_and_reload
        ));
        $node->psql('postgres', "SELECT pg_reload_conf()", stdout => \$psql_out);
        is($psql_out, 't', "reload node $name with $parameter");
+       return;
 }
 
 # Set up two nodes, which will alternately be master and replication standby.
index ced279c31b926f46b6f3b484aece46f3bfc274fb..1cd3badaa1dd6f9af92c414e95863194669ab0b9 100644 (file)
@@ -47,6 +47,7 @@ sub test_connect_ok
        ];
 
        command_ok($cmd, $test_name);
+       return;
 }
 
 sub test_connect_fails
@@ -60,6 +61,7 @@ sub test_connect_fails
        ];
 
        command_fails_like($cmd, $expected_stderr, $test_name);
+       return;
 }
 
 # Copy a set of files, taking into account wildcards
@@ -75,6 +77,7 @@ sub copy_files
                copy($orig_file, "$dest/$base_file")
                  or die "Could not copy $orig_file to $dest";
        }
+       return;
 }
 
 sub configure_test_server_for_ssl
@@ -130,6 +133,8 @@ sub configure_test_server_for_ssl
 
        # Change pg_hba after restart because hostssl requires ssl=on
        configure_hba_for_ssl($node, $serverhost, $authmethod);
+
+       return;
 }
 
 # Change the configuration to use given server cert file, and reload
@@ -150,6 +155,7 @@ sub switch_server_cert
        close $sslconf;
 
        $node->restart;
+       return;
 }
 
 sub configure_hba_for_ssl
@@ -173,4 +179,7 @@ sub configure_hba_for_ssl
        print $hba
          "hostssl certdb          all             ::1/128                 cert\n";
        close $hba;
+       return;
 }
+
+1;
\ No newline at end of file
index 41cb93d658ae9ebd34932687c81672c6a0ee8005..08b9e5b42e3d25e046322ae4fd73f9dfe163164a 100755 (executable)
@@ -62,6 +62,7 @@ sub wanted
                $line =~ s/$cc (\d{4}), $pgdg/$ccliteral $1-$year, $pgdg/i;
        }
        untie @lines;
+       return;
 }
 
 print "Manually update:\n";
index 1262bc104c26208d29fa0e7f534c96f6043a863d..af9afcf1f0fb383fa0617208f1ed586901ff24aa 100755 (executable)
@@ -333,6 +333,7 @@ sub push_commit
        push @{ $all_commits_by_branch{ $c->{'branch'} } }, $cc;
        $cc->{'branch_position'}{ $c->{'branch'} } =
          -1 + @{ $all_commits_by_branch{ $c->{'branch'} } };
+       return;
 }
 
 sub hash_commit
@@ -355,6 +356,7 @@ sub parse_datetime
 sub output_str
 {
        ($oldest_first) ? ($output_line .= sprintf(shift, @_)) : printf(@_);
+       return;
 }
 
 sub output_details
@@ -395,6 +397,7 @@ sub output_details
                }
        }
        output_str("\n");
+       return;
 }
 
 sub usage
index 67124bb109ab28f0b502ecc780a04eef8be36578..6f1c30546aeee1184e71f44477cc024dac7dbb6c 100644 (file)
@@ -40,6 +40,7 @@ sub lcopy
        copy($src, $target)
          || confess "Could not copy $src to $target\n";
 
+       return;
 }
 
 sub Install
@@ -173,6 +174,7 @@ sub Install
        GenerateNLSFiles($target, $config->{nls}, $majorver) if ($config->{nls});
 
        print "Installation complete.\n";
+       return;
 }
 
 sub EnsureDirectories
@@ -183,6 +185,7 @@ sub EnsureDirectories
        {
                mkdir $target . '/' . $d unless -d ($target . '/' . $d);
        }
+       return;
 }
 
 sub CopyFiles
@@ -200,6 +203,7 @@ sub CopyFiles
                lcopy($f, $target . basename($f));
        }
        print "\n";
+       return;
 }
 
 sub CopySetOfFiles
@@ -215,6 +219,7 @@ sub CopySetOfFiles
                lcopy($_, $tgt) || croak "Could not copy $_: $!\n";
        }
        print "\n";
+       return;
 }
 
 sub CopySolutionOutput
@@ -340,6 +345,7 @@ sub CopySolutionOutput
                print ".";
        }
        print "\n";
+       return;
 }
 
 sub GenerateConversionScript
@@ -377,6 +383,7 @@ sub GenerateConversionScript
        print $F $sql;
        close($F);
        print "\n";
+       return;
 }
 
 sub GenerateTimezoneFiles
@@ -408,6 +415,7 @@ sub GenerateTimezoneFiles
 
        system(@args);
        print "\n";
+       return;
 }
 
 sub GenerateTsearchFiles
@@ -449,6 +457,7 @@ sub GenerateTsearchFiles
        }
        close($F);
        print "\n";
+       return;
 }
 
 sub CopyContribFiles
@@ -475,6 +484,7 @@ sub CopyContribFiles
                }
        }
        print "\n";
+       return;
 }
 
 sub CopySubdirFiles
@@ -561,6 +571,7 @@ sub CopySubdirFiles
                        print '.';
                }
        }
+       return;
 }
 
 sub ParseAndCleanRule
@@ -676,6 +687,7 @@ sub CopyIncludeFiles
                $target . '/include/informix/esql/',
                'src/interfaces/ecpg/include/',
                split /\s+/, $1);
+       return;
 }
 
 sub GenerateNLSFiles
@@ -719,6 +731,7 @@ sub GenerateNLSFiles
                }
        }
        print "\n";
+       return;
 }
 
 sub DetermineMajorVersion
index 2726d603afd290fc9c7357fc8fc3c2b683fcf87d..27397ba3fb123db98cb481e1911d19721098e6aa 100644 (file)
@@ -80,6 +80,7 @@ EOF
                        strpool => 'true',
                        runtime => 'MultiThreadedDLL'
                });
+       return;
 }
 
 sub AddDefine
@@ -87,6 +88,7 @@ sub AddDefine
        my ($self, $def) = @_;
 
        $self->{defines} .= $def . ';';
+       return;
 }
 
 sub WriteReferences
@@ -112,6 +114,7 @@ EOF
   </ItemGroup>
 EOF
        }
+       return;
 }
 
 sub WriteFiles
@@ -223,6 +226,7 @@ EOF
   </ItemGroup>
 EOF
        }
+       return;
 }
 
 sub WriteConfigurationHeader
@@ -234,6 +238,7 @@ sub WriteConfigurationHeader
       <Platform>$self->{platform}</Platform>
     </ProjectConfiguration>
 EOF
+       return;
 }
 
 sub WriteConfigurationPropertyGroup
@@ -252,6 +257,7 @@ sub WriteConfigurationPropertyGroup
     <WholeProgramOptimization>$p->{wholeopt}</WholeProgramOptimization>
   </PropertyGroup>
 EOF
+       return;
 }
 
 sub WritePropertySheetsPropertyGroup
@@ -262,6 +268,7 @@ sub WritePropertySheetsPropertyGroup
     <Import Project="\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props" Condition="exists('\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
 EOF
+       return;
 }
 
 sub WriteAdditionalProperties
@@ -272,6 +279,7 @@ sub WriteAdditionalProperties
     <IntDir Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'">.\\$cfgname\\$self->{name}\\</IntDir>
     <LinkIncremental Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'">false</LinkIncremental>
 EOF
+       return;
 }
 
 sub WriteItemDefinitionGroup
@@ -364,6 +372,7 @@ EOF
        print $f <<EOF;
   </ItemDefinitionGroup>
 EOF
+       return;
 }
 
 sub Footer
@@ -377,6 +386,7 @@ sub Footer
   </ImportGroup>
 </Project>
 EOF
+       return;
 }
 
 package VC2010Project;
@@ -441,6 +451,7 @@ sub WriteConfigurationPropertyGroup
     <PlatformToolset>$self->{PlatformToolset}</PlatformToolset>
   </PropertyGroup>
 EOF
+       return;
 }
 
 package VC2013Project;
index d0d7d464952a19cf3cddfc13dac2aebbf10e89e3..4543d87d83b6ff9d9298201f251762a67ba5a091 100644 (file)
@@ -964,6 +964,7 @@ sub AddContrib
 
        # Are there any output data files to build?
        GenerateContribSqlFiles($n, $mf);
+       return;
 }
 
 sub GenerateContribSqlFiles
@@ -1010,6 +1011,7 @@ sub GenerateContribSqlFiles
                        }
                }
        }
+       return;
 }
 
 sub AdjustContribProj
@@ -1020,6 +1022,7 @@ sub AdjustContribProj
                \@contrib_uselibpq,       \@contrib_uselibpgport,
                \@contrib_uselibpgcommon, $contrib_extralibs,
                $contrib_extrasource,     $contrib_extraincludes);
+       return;
 }
 
 sub AdjustFrontendProj
@@ -1030,6 +1033,7 @@ sub AdjustFrontendProj
                \@frontend_uselibpq,       \@frontend_uselibpgport,
                \@frontend_uselibpgcommon, $frontend_extralibs,
                $frontend_extrasource,     $frontend_extraincludes);
+       return;
 }
 
 sub AdjustModule
@@ -1086,6 +1090,7 @@ sub AdjustModule
                        $proj->AddFile($i);
                }
        }
+       return;
 }
 
 END
index 46c680d5367a1b60a804176dd75c77c751ae2d22..261c913ea072a5e538812b8cb8d89bf6e11fd871 100644 (file)
@@ -45,6 +45,7 @@ sub AddFile
        my ($self, $filename) = @_;
 
        $self->{files}->{$filename} = 1;
+       return;
 }
 
 sub AddFiles
@@ -56,6 +57,7 @@ sub AddFiles
        {
                $self->{files}->{ $dir . "/" . $f } = 1;
        }
+       return;
 }
 
 sub ReplaceFile
@@ -110,6 +112,7 @@ sub RelocateFiles
                        $self->AddFile($targetdir . '/' . basename($f));
                }
        }
+       return;
 }
 
 sub AddReference
@@ -122,6 +125,7 @@ sub AddReference
                $self->AddLibrary(
                        "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib");
        }
+       return;
 }
 
 sub AddLibrary
@@ -138,6 +142,7 @@ sub AddLibrary
        {
                push @{ $self->{suffixlib} }, $lib;
        }
+       return;
 }
 
 sub AddIncludeDir
@@ -149,6 +154,7 @@ sub AddIncludeDir
                $self->{includes} .= ';';
        }
        $self->{includes} .= $inc;
+       return;
 }
 
 sub AddPrefixInclude
@@ -156,6 +162,7 @@ sub AddPrefixInclude
        my ($self, $inc) = @_;
 
        $self->{prefixincludes} = $inc . ';' . $self->{prefixincludes};
+       return;
 }
 
 sub AddDefine
@@ -164,6 +171,7 @@ sub AddDefine
 
        $def =~ s/"/&quot;&quot;/g;
        $self->{defines} .= $def . ';';
+       return;
 }
 
 sub FullExportDLL
@@ -173,6 +181,7 @@ sub FullExportDLL
        $self->{builddef} = 1;
        $self->{def}      = "./__CFGNAME__/$self->{name}/$self->{name}.def";
        $self->{implib}   = "__CFGNAME__/$self->{name}/$libname";
+       return;
 }
 
 sub UseDef
@@ -180,6 +189,7 @@ sub UseDef
        my ($self, $def) = @_;
 
        $self->{def} = $def;
+       return;
 }
 
 sub AddDir
@@ -284,6 +294,7 @@ sub AddDir
        }
 
        $self->AddDirResourceFile($reldir);
+       return;
 }
 
 # If the directory's Makefile bears a description string, add a resource file.
@@ -299,6 +310,7 @@ sub AddDirResourceFile
                if ($mf =~ /^PGAPPICON\s*=\s*(.*)$/m) { $ico = $1; }
                $self->AddResourceFile($reldir, $desc, $ico);
        }
+       return;
 }
 
 sub AddResourceFile
@@ -332,6 +344,7 @@ sub AddResourceFile
                close($i);
        }
        $self->AddFile("$dir/win32ver.rc");
+       return;
 }
 
 sub DisableLinkerWarnings
@@ -341,6 +354,7 @@ sub DisableLinkerWarnings
        $self->{disablelinkerwarnings} .= ','
          unless ($self->{disablelinkerwarnings} eq '');
        $self->{disablelinkerwarnings} .= $warnings;
+       return;
 }
 
 sub Save
@@ -366,6 +380,7 @@ sub Save
        $self->WriteFiles($f);
        $self->Footer($f);
        close($f);
+       return;
 }
 
 sub GetAdditionalLinkerDependencies
index a33e68eccf0559ab4516145df78189993e66fb7a..8f0b355fc0ea057dfbba381a86df20b66c0895df 100644 (file)
@@ -75,6 +75,7 @@ sub DeterminePlatform
        $? >> 8 == 0 or die "cl command not found";
        $self->{platform} = ($output =~ /^\/favor:<.+AMD64/m) ? 'x64' : 'Win32';
        print "Detected hardware platform: $self->{platform}\n";
+       return;
 }
 
 # Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist.
@@ -112,6 +113,7 @@ sub copyFile
        }
        close($i);
        close($o);
+       return;
 }
 
 sub GenerateFiles
@@ -533,6 +535,7 @@ EOF
 <!ENTITY majorversion "$self->{majorver}">
 EOF
        close($o);
+       return;
 }
 
 sub GenerateDefFile
@@ -555,6 +558,7 @@ sub GenerateDefFile
                close($of);
                close($if);
        }
+       return;
 }
 
 sub AddProject
@@ -727,6 +731,7 @@ EOF
 EndGlobal
 EOF
        close($sln);
+       return;
 }
 
 sub GetFakeConfigure
index 57b8525f3fef370950e7d6080a5d2fecf443350d..03b890b9b7462c89276860a4ca726d8761cd15d6 100644 (file)
@@ -56,6 +56,7 @@ EOF
  </Configurations>
 EOF
        $self->WriteReferences($f);
+       return;
 }
 
 sub WriteFiles
@@ -152,6 +153,7 @@ EOF
        print $f <<EOF;
  </Files>
 EOF
+       return;
 }
 
 sub Footer
@@ -162,6 +164,7 @@ sub Footer
  <Globals/>
 </VisualStudioProject>
 EOF
+       return;
 }
 
 sub WriteConfiguration
@@ -227,6 +230,7 @@ EOF
        print $f <<EOF;
   </Configuration>
 EOF
+       return;
 }
 
 sub WriteReferences
@@ -239,6 +243,7 @@ sub WriteReferences
                  "  <ProjectReference ReferencedProjectIdentifier=\"$ref->{guid}\" Name=\"$ref->{name}\" />\n";
        }
        print $f " </References>\n";
+       return;
 }
 
 sub GenerateCustomTool
index 8ab7385b9e8cc9c0c439fe13b757b2846af890e2..f6eb73db21208c356251290e6182a577b6fe8ae0 100644 (file)
@@ -107,7 +107,7 @@ sub renamefiles
                move $f, $nf;
        }
        chdir $savedir;
-
+  return;
 }
 
 sub missing
index 9f0cf76fb357a3a36d3dab0191b2954eb88eadd1..77c3a775b05fa6a6ded9235bcf5da43388f9e063 100644 (file)
@@ -20,6 +20,7 @@ sub dumpsyms
        system("dumpbin /symbols /out:$tmpfile $_ >NUL")
          && die "Could not call dumpbin";
        rename($tmpfile, $symfile);
+       return;
 }
 
 # Given a symbol file path, loops over its contents
@@ -116,6 +117,7 @@ sub extract_syms
                $def->{ $pieces[6] } = $pieces[3];
        }
        close($f);
+       return;
 }
 
 sub writedef
@@ -143,6 +145,7 @@ sub writedef
                }
        }
        close($fh);
+       return;
 }
 
 
index a74adbaf998395bcab7541935d044cd825270f32..4dc051aa62812507579d4033f35312856d544e78 100644 (file)
@@ -111,6 +111,7 @@ sub installcheck
        system(@args);
        my $status = $? >> 8;
        exit $status if $status;
+       return;
 }
 
 sub check
@@ -132,6 +133,7 @@ sub check
        system(@args);
        my $status = $? >> 8;
        exit $status if $status;
+       return;
 }
 
 sub ecpgcheck
@@ -157,6 +159,7 @@ sub ecpgcheck
        system(@args);
        $status = $? >> 8;
        exit $status if $status;
+       return;
 }
 
 sub isolationcheck
@@ -173,6 +176,7 @@ sub isolationcheck
        system(@args);
        my $status = $? >> 8;
        exit $status if $status;
+       return;
 }
 
 sub tap_check
@@ -224,6 +228,7 @@ sub bincheck
                $mstat ||= $status;
        }
        exit $mstat if $mstat;
+       return;
 }
 
 sub taptest
@@ -244,6 +249,7 @@ sub taptest
        InstallTemp();
        my $status = tap_check(@args);
        exit $status if $status;
+       return;
 }
 
 sub mangle_plpython3
@@ -365,6 +371,7 @@ sub plcheck
        }
 
        chdir "$topdir";
+       return;
 }
 
 sub subdircheck
@@ -413,6 +420,7 @@ sub subdircheck
        print join(' ', @args), "\n";
        system(@args);
        chdir "..";
+       return;
 }
 
 sub contribcheck
@@ -434,6 +442,7 @@ sub contribcheck
                $mstat ||= $status;
        }
        exit $mstat if $mstat;
+       return;
 }
 
 sub modulescheck
@@ -447,6 +456,7 @@ sub modulescheck
                $mstat ||= $status;
        }
        exit $mstat if $mstat;
+       return;
 }
 
 sub recoverycheck
@@ -457,6 +467,7 @@ sub recoverycheck
        my $dir    = "$topdir/src/test/recovery";
        my $status = tap_check($dir);
        exit $status if $status;
+       return;
 }
 
 # Run "initdb", then reconfigure authentication.
@@ -501,6 +512,7 @@ sub generate_db
        system('createdb', quote_system_arg($dbname));
        my $status = $? >> 8;
        exit $status if $status;
+       return;
 }
 
 sub upgradecheck
@@ -586,6 +598,7 @@ sub upgradecheck
                print "dumps not identical!\n";
                exit(1);
        }
+       return;
 }
 
 sub fetchRegressOpts
@@ -680,6 +693,7 @@ sub InstallTemp
                Install("$tmp_installdir", "all", $config);
        }
        $ENV{PATH} = "$tmp_installdir/bin;$ENV{PATH}";
+       return;
 }
 
 sub usage
index c547df45ea58ed740aa5cc1e61cae54b696460ea..4edf7fc56e82109757d7c9bb4f98ae26aa5d81a1 100755 (executable)
@@ -297,4 +297,6 @@ sub checkit
        print "$file references $symbol, defined in @places\n";
 
        # print "includes: @includes\n";
+
+       return;
 }
index fc616e7a08c49ad08e27eed67b8cad03fb63efe8..2d81672e158b0d9b429b08a6441c140469f20b76 100755 (executable)
@@ -93,6 +93,8 @@ sub check_indent
                  "You appear to have GNU indent rather than BSD indent.\n";
                exit 1;
        }
+
+       return;
 }
 
 
@@ -162,6 +164,7 @@ sub process_exclude
                }
                close($eh);
        }
+       return;
 }
 
 
@@ -189,6 +192,7 @@ sub write_source
          || die "cannot open file \"$source_filename\": $!\n";
        print $src_fh $source;
        close($src_fh);
+       return;
 }
 
 
@@ -316,6 +320,7 @@ sub diff
                  . $pre_fh->filename . " "
                  . $post_fh->filename
                  . " >&2");
+       return;
 }
 
 
@@ -361,6 +366,7 @@ sub run_build
        $ENV{PGINDENT} = abs_path('pg_bsd_indent');
 
        chdir $save_dir;
+       return;
 }
 
 
@@ -382,6 +388,7 @@ sub build_clean
 
        system("rm -rf src/tools/pgindent/pg_bsd_indent");
        system("rm -f src/tools/pgindent/tmp_typedefs.list");
+       return;
 }
 
 
index 1059002ad50abfd13dfede0b55e3d40f393fe97f..c831086ae92261a5c6e51040d926845fa6bc926f 100644 (file)
@@ -12,3 +12,8 @@ theme = core
 
 # allow octal constants with leading zeros
 [-ValuesAndExpressions::ProhibitLeadingZeros]
+
+# for now raise severity of this to level 5
+[Subroutines::RequireFinalReturn]
+severity = 5
+
index 40d006bef6e6e35483f443d9a563d7ca21bf48af..28264b1a24287d5bc28ca3c514bf22186a8571e6 100755 (executable)
@@ -15,7 +15,7 @@ PERLCRITIC=${PERLCRITIC:-perlcritic}
 # locate all Perl files in the tree
 {
        # take all .pl and .pm files
-       find . -type f -a \( -name '*.pl' -o -name '*.pm' \) -print
+       find . -type f -name '*.p[lm]' -print
        # take executable files that file(1) thinks are perl files
        find . -type f -perm -100 -exec file {} \; -print |
        egrep -i ':.*perl[0-9]*\>' |
index 392fd4ae541fcc726502b04f93463a4465d4a98d..499e3deb3aee0097746c2c3129ee8471f03415ce 100755 (executable)
@@ -141,4 +141,5 @@ sub sed_file
          or die "mv failed: $?";
 
        $fixedfiles .= "\t$filename\n";
+       return;
 }