サブルーチンをライブラリにしてそれを呼び出して使う〜require, なぜ最後に1をつけるのか

◎お題
配列の重複している要素をまとめるサブルーチンを作り外部ファイルにしたものを、他のプログラムで呼び出し実行する。
■サブルーチン(arrutil.pl)
※呼び出して実行するプログラムと同じディレクトリにおく。

#! /usr/bin/perl

use strict;
use warnings;

sub arrutil {
    my %in=();
    my @array2=();

    for (@_) {$in{$_}='a';}
    for (keys %in) {push (@array2,$_);}

    return \@array2;
}

1;

■サブルーチンを呼び出して実行するプログラム(test.pl)

#! /usr/bin/perl

use warnings;
use strict;
require "arrUtil.pl";

my @array=(1,4,7,2,6,1,4,4,8,7,9,0,2,1);

my $ans=&arrutil(@array);
print "@$ans";

◎ポイント
サブルーチン(arrutil.pl)の最後に、「1;」を必ず入れる。入れないと、「arrUtil.pl did not return a true value at test9.pl line 5.」と怒られます。
理由/requireされるファイルは、常に真を返さないと行けないという決まりがあるため。(真は1, 偽は0)